数据库系统原理课程设计Oracle数据库管理与设计.doc

上传人:文库蛋蛋多 文档编号:2395513 上传时间:2023-02-17 格式:DOC 页数:77 大小:4.78MB
返回 下载 相关 举报
数据库系统原理课程设计Oracle数据库管理与设计.doc_第1页
第1页 / 共77页
数据库系统原理课程设计Oracle数据库管理与设计.doc_第2页
第2页 / 共77页
数据库系统原理课程设计Oracle数据库管理与设计.doc_第3页
第3页 / 共77页
数据库系统原理课程设计Oracle数据库管理与设计.doc_第4页
第4页 / 共77页
数据库系统原理课程设计Oracle数据库管理与设计.doc_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《数据库系统原理课程设计Oracle数据库管理与设计.doc》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计Oracle数据库管理与设计.doc(77页珍藏版)》请在三一办公上搜索。

1、Oracle数据库管理与设计姓名: 学号:班级: 计算机 信息工程学院计算机系2012年3月1日星期四目 录目 录I前 言II第1部分 Oracle管理技术1实验1 数据库管理1实验2 角色和用户管理7实验3 表和视图管理10实验4 索引和序列管理20实验5 PL/SQL编程23实验6 使用游标、存储过程和触发器35实验7 表空间管理39实验8 文件管理51第2部分 Oracle开发技术65前 言数据库技术是计算机科学中发展最快的领域之一。随着网络技术的不断发展,数据库技术与网络技术相结合,已经广泛应用于工作和生活的各个领域。同时,数据库技术及其应用已经成为国内外高校计算机专业和许多非计算机专

2、业的必修或选修课程。Oracle是当前最流行的大型关系数据库之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多种操作系统,拥有广泛的用户和大量的应用案例,已成为大型数据库应用系统的首选后台数据库系统。本实验课程要求学生全面了解Oracle数据库的特点和功能。从安装配置、安全性、可用性、互操作性、PL/SQL、可开发性、商业智能等多个方面,对Oracle数据库的各项技术进行学习和实验。通过学习Oracle数据库安装、管理及开发,为今后从事Oracle数据库管理和开发工作打下良好的基础。本实验课程共分2个部分。第1部分为Oracl

3、e的管理技术,由实验1实验8组成,包括数据库管理、角色和用户管理、表和视图管理、索引和序列管理、PL/SQL编程、以及使用游标、存储过程和触发器、表空间和文件管理等内容。第2部分为Oracle开发技术,要求完成基于一定背景的管理信息系统的数据库设计,如学生信息管理系统、图书管理系统、人事信息管理系统、网上购物系统等。第1部分为基础题、必做题,第2部分为提高题、选做题。第1部分 Oracle管理技术实验1 数据库管理目的和要求(1)了解Oracle数据库的逻辑结构和物理结构;(2)了解Oracle Enterprise Manager的使用情况;(3)学习关闭和启动数据库实例的方法;(4)学习使

4、用SQL语句创建数据库的方法;(5)学习使用SQL语句删除数据库的方法。实验准备首先要了解Oracle数据库的逻辑结构,包括方案(schema)对象、数据块(data block)、区间(extent)、段(segment)和表空间(tablespace)等。数据库由若干个表空间组成,表空间由表组成,段由区间组成,区间则由数据块组成。Oracle数据库的物理结构由构成数据库的操作系统文件所决定。每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。Enterprise Manager 9i是Oracle 9i提供的新的管理工具

5、,简称EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有CREATE DATABASE权限的用户才能创建数据库。可以在Enterprise Manager中通过图形界面创建数据库,也可以使用CREATE DATABASE语句创建数据库。实验内容本实验主要包括以下内容。(1)练习使用不同方法启动和关闭数据库实例。(2)练习使用不同方法创建和删除数据库,要使操作的数据库为用户管理数据库UserMan。1使用SHUTDOWN命令关闭数据库实例练习使用SHUTDOWN命令关闭数据库实例,分别按以下方式启动数据库实例。(1)正常关闭。等待当前所有已连接的用户断开与数据库的

6、连接,然后关闭数据库。正常关闭的语句如下:SHUTDOWN NORMAL(2)立即关闭。回退活动事务处理并断开所有已连接的用户,然后关闭数据库。立即关闭的语句如下:SHUTDOWN IMMEDIATE(3)事务处理关闭。完成事务处理后断开所有已连接的用户,然后关闭数据库。事务处理关闭的语句如下:SHUTDOWN TRANSACTIONAL(4)中止关闭。中止数据库实例,立即关闭数据库。中止关闭的语句如下:SHUTDOWN ABORT每次执行SHUTDOWN语句关闭数据库实例之前,请执行STARTUP命令启动数据库。2使用STARTUP命令启动数据库实例练习使用STARTUP命令启动数据库实例,

7、分别按以下方式启动数据库实例。(1)启动数据库实例时不装载数据库。执行此操作的命令如下:STARTUP NOMOUNT(2)启动数据库实例,装载数据库,但不打开数据库。通常在数据库维护时执行此操作,对应的命令如下:STARTUP MOUNT(3)启动数据库实例,装载数据库,打开数据库。执行此操作的命令如下:STARTUP OPEN(4)强制实例启动。在遇到特殊异常的情况时,可以强制启动实例。强制启动实例的语句如下:STARTUP FORCE该语句将数据库强行启动到OPEN模式。(5)启动后限制对数据库实例的访问。执行此操作的命令如下:STARTUP RESTRICT每次执行STARTUP语句启

8、动数据库实例之前,请执行SHUTDOWN命令关闭数据库。3使用ORACLE Enterprise Manager关闭数据库实例按照下面的步骤关闭数据库实例。(1)在数据库处于打开状态时,使用SYS用户以SYSDBA身份登录到Enterprise Manager。在主目录页面的“一般信息”栏目中,可以看到“关闭”按钮。(2)单击“关闭”按钮,可以打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能关闭数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。(3)输入完成后,单击“确定”按钮,打开“确认关闭”页面。(4)单击“是”按钮,开始关闭数据库。关闭操作完成后,

9、单击“刷新”按钮,打开“启动数据库实例”页面。 4使用ORACLE Enterprise Manager启动数据库实例按照下面的步骤启动数据库实例。(1)使用SYS用户以SYSDBA身份登录到Enterprise Manager。(2)单击“启动”按钮,打开“主机和目标数据库身份证明”页面。用户需要拥有管理员的权限才能启动数据库实例,包括主机操作系统的管理员和当前数据库实例的SYSDBA用户。(3)输入完成后,单击“确定”按钮,打开“确认打开”页面。(4)单击“是”按钮,开始打开数据库。5使用SQL语句创建数据库按照如下条件创建数据库OracleDB(以SYSDBA的用户身份连接到数据库)。(

10、1)设置SYS用户的密码为SYSPWD,设置SYSTEM用户的密码为SYSTEMPWD。(2)使用已有的控制文件。(3)指定日志文件组redo01.log,大小为100MB;指定日志文件组redo02.log,大小为100MB。设置最大的日志文件数量为10。(4)定义日志文件组中最大的日志文件数量为5。(5)定义最大的数据文件数量为100。(6)定义数据库中最大的实例数量为1。(7)定义存储数据的字符集为US7ASCII。(8)定义数据文件名称为SYS01.dbf,初始大小为100MB。(9)定义默认的表空间为tbs_1。(10)定义临时表空间为tempts1。(11)定义临时文件为temp0

11、1.dbf,大小为10MB。CREATE DATABASE语句实例:CREATE DATABASE OracleDB USER SYS IDENTIFIED BY SYSPWD USER SYSTEM IDENTIFIED BY SYSTEMPWD CONTROLFILE REUSE LOGFILE GROUP 1 (redo01.log) SIZE 100M , GROUP 2 (redo02.log) SIZE 100M , MAXLOGFILES 10 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET US7ASC

12、II DATAFILE sys01.dbf SIZE 100M REUSE EXTENT MANAGEMENT LOCAL DEFAULT TABLESPACE tbs_1 DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE temp01.dbf SIZE 10M REUSE; 6使用SQL语句删除数据库按照如下步骤删除数据库UserMan。(1)在删除数据库之前,需要用户以SYSDBA或SYSOPER身份登录,代码如下:CONNECT SYS/SYSPWD AS SYSDBA;其中SYSPWD为SYS用户的密码,请根据实际情况输入。(2)关闭数据库,再

13、以MOUNT模式启动数据库,代码如下:SHUTDOWN IMMEDIATE;STARTUP MOUNT;(3)删除数据库,代码如下:DROP DATABASE; 实验2 角色和用户管理目的和要求(1)了解Oracle数据库用户和角色的概念;(2)学习使用SQL语句创建Oracle用户;(3)学习使用SQL语句创建Oracle角色;(4)学习使用SQL语句指定用户的角色。实验准备(1)了解Oracle数据库用户可以分为6种类型,即数据库管理员、安全官员、网络管理员、应用程序开发员、应用程序管理员和数据库用户;(2)了解角色是对用户的一种分类管理办法,不同权限的用户可以分为不同的角色;(3)了解使

14、用CREATE ROLE语句创建角色的方法;(4)了解使用DROP ROLE语句删除角色的方法;(5)了解使用GRANT语句指定用户角色的方法;(5)了解使用CREATE USER语句创建用户的方法;(4)了解使用DROP USER语句删除用户的方法。实验内容本实验主要包括以下内容。(1)练习使用SQL语句创建数据库角色;(2)练习使用SQL语句为数据库角色授予权限;(3)练习使用SQL语句指定用户角色;(4)练习使用SQL语句创建数据库用户。1使用SQL语句创建数据库角色参照下面的步骤练习使用CREATE ROLE语句创建数据库角色。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用

15、CREATE ROLE语句创建角色UserManRole,密码为myrolepwd,代码如下:CREATE ROLE UserManRole IDENTIFIED BY myrolepwd;2使用SQL语句为数据库角色授权参照下面的步骤练习使用GRANT语句为数据库角色授权。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用GRANT语句将角色UserManRole授予CONNECT和RESOURCE权限,代码如下:-设置角色权限GRANT CONNECT TO UserManRole ;GRANT RESOURCE TO UserManRole ;3使用SQL语句创建数据库用户参照下

16、面的步骤练习使用CREATE USER语句创建数据库用户。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用CREATE USER语句创建用户UserManAdmin,密码为UserPwd,代码如下:CREATE USER UserManAdmin IDENTIFIED BY UserPwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;(3)使用GRANT语句对用户UserManAdmin授予系统权限UNLIMITED TABLESPACE,代码如下:-设置系统权限GRANT UNLIMITED TABLESPACE TO Us

17、erManAdmin ;4使用SQL语句指定用户角色参照下面的步骤将用户UserMan指定为角色UserManRole。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用GRANT语句将用户UserMan指定为角色UserManRole,代码如下:GRANT UserManRole TO UserManAdmin ;实验3 表和视图管理目的和要求(1)了解Oracle表和视图的概念;(2)学习使用SQL语句创建表;(3)学习使用SELECT语句查询数据;(4)学习使用SQL语句创建视图。实验准备(1)了解表是数据库中最常用的数据存储单元,它包括所有用户可以访问的数据。作为关系型数据库,

18、Oracle表由行和列组成。(2)视图是一个虚拟的表,它在物理上并不存在。视图可以把表或其它视图的数据按照一定的条件组合起来,所以也可以把它看成是一个存储的查询。视图并不包含数据,它只是从基表中读取数据。(3)了解使用CREATE TABLE语句创建表的方法。(4)了解使用SELECT语句查询数据的方法。(5)了解使用SQL语句创建视图的方法。实验内容本实验主要包括以下内容。(1)练习使用SQL语句创建表;(2)练习使用SQL语句向表中插入数据;(3)练习使用SQL语句修改表中的数据;(4)练习使用SQL语句删除表中的数据;(5)练习使用SELECT语句查询数据;(6)练习使用SQL语句创建视

19、图。1使用SQL语句创建表使用CREATE TABLE语句创建用户信息表Users,结构如表1所示。表1 表Users的结构编 号字段名称数据结构说 明1UserIdNUMBER用户编号2UserNameVARCHAR2 40用户名3UserTypeNUMBER 1用户类型(1 管理员用户,2 普通用户)4UserPwdVARCHAR2 40参照下面的步骤练习使用CREATE TABLE语句创建表Users。(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。(2)使用CREATE TABLE语句创建表Users,代码如下:CREATE TABLE UserManAdmi

20、n.Users(UserIdNumber Primary Key, UserNameVarchar2(40) NOT NULL, UserTypeNumber(1), UserPwdVarchar2(40);使用CREATE TABLE语句创建用户登录信息表LoginInfo,结构如表2所示。表2 表LoginInfo的结构编 号字段名称数据结构说 明1UserIdNUMBER用户编号2LoginTimeCHAR(20)登录时间参照下面的步骤练习使用CREATE TABLE语句创建表LoginInfo。(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。(2)使用CREA

21、TE TABLE语句创建表LoginInfo,代码如下:CREATE TABLE UserManAdmin.LoginInfo(UserIdNumber, LoginTimeCHAR(20) NOT NULL);2使用SQL语句向表中插入数据使用INSERT语句向表Users中插入用户数据,内容如表3所示。表3 表Users中的数据UserIdUserNameUserTypeUserPwd1Admin1AdminPwd2User2UserPwd3Zhangsan2ZhangsanPwd4Lisi2LisiPwd参照下面的步骤练习使用INSERT语句向表Users中插入数据。(1)以实验2中创建

22、的UserManAdmin用户登录到SQL*PLUS。(2)使用INSERT语句向表Users中插入数据,代码如下:INSERT INTO UserManAdmin.Users VALUES(1, Admin, 1, AdminPwd);INSERT INTO UserManAdmin.Users VALUES(2, User, 2, UserPwd);INSERT INTO UserManAdmin.Users VALUES(3, Zhangsan, 2, ZhangsanPwd);INSERT INTO UserManAdmin.Users VALUES(4, Lisi, 2, LisiP

23、wd);COMMIT;使用INSERT语句向表LoginInfo中插入数据。内容如表4所示。参照下面的步骤练习使用INSERT语句向表LoginInfo中插入数据。(1)以实验2中创建的UserManAdmin用户登录到SQL*PLUS。(2)使用INSERT语句向表LoginInfo中插入数据,代码如下:INSERT INTO UserManAdmin.LoginInfo VALUES(1, 2010-5-15 10:33:02,);INSERT INTO UserManAdmin.LoginInfo VALUES(1, 2010-5-16 08:34:13,);INSERT INTO Us

24、erManAdmin.LoginInfo VALUES(1, 2010-5-17 09:13:11,);INSERT INTO UserManAdmin.LoginInfo VALUES(2, 2010-5-15 07:35:02,);INSERT INTO UserManAdmin.LoginInfo VALUES(2, 2010-5-16 08:11:54,);INSERT INTO UserManAdmin.LoginInfo VALUES(2, 2010-5-17 09:13:11,);INSERT INTO UserManAdmin.LoginInfo VALUES(3, 2010-

25、5-15 08:34:02,);INSERT INTO UserManAdmin.LoginInfo VALUES(3, 2010-5-16 09:34:13,);INSERT INTO UserManAdmin.LoginInfo VALUES(3, 2010-5-17 10:13:09,);INSERT INTO UserManAdmin.LoginInfo VALUES(4, 2010-5-15 11:34:02,);INSERT INTO UserManAdmin.LoginInfo VALUES(4, 2010-5-16 13:34:13,);INSERT INTO UserManA

26、dmin.LoginInfo VALUES(4, 2010-5-17 15:13:12,);COMMIT; 表4 表LoginInfo中的数据UserIdLoginTime12010-5-15 10:33:0212010-5-16 08:34:1312010-5-17 09:13:1122010-5-15 07:35:0222010-5-16 08:11:5422010-5-17 09:13:1132010-5-15 08:34:0232010-5-16 09:34:1332010-5-17 10:13:0942010-5-15 11:34:0242010-5-16 13:34:1342010

27、-5-17 15:13:123使用SQL语句修改表中的数据使用UPDATE语句可以修改表Users中的数据。参照下面的步骤练习将表Users中Admin用户的密码修改为AdminPassword。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用UPDATE语句将表Users中Admin用户的密码修改为AdminPassword,代码如下:UPDATE UserManAdmin.Users SET UserPwd=AdminPassword WHERE UserName=Admin(3)使用SELECT语句查看用户Admin的密码,代码如下:SELECT UserPwd FROM Us

28、erManAdmin.Users WHERE UserName=Admin4使用SQL语句删除表中的数据使用DELETE语句可以删除表Users中的数据。参照下面的步骤练习将表Users中Zhansan用户的记录删除。(1)以SYSTEM用户登录到SQL*PLUS。(2)使用DELETE语句将表Users中Zhangsan用户的记录删除,代码如下:DELETE FROM UserManAdmin.Users WHERE UserName=Zhangsan(3)使用SELECT语句查看表Users中的数据,确认用户Zhangsan的记录是否被删除,代码如下:SELECT * FROM UserM

29、anAdmin.Users5使用SELECT语句查询数据使用SELECT语句查询数据库中的用户数据,分别按以下方式查询数据库。(1)查询表Users中的所有数据。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT * FROM UserManAdmin.Users*代表UserManAdmin.Users中的所有字段。(2)在返回结果中使用自定义标题。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT UserName AS 用户名, UserPwd AS 密码 FROM UserManAdmin.Users(3)设置查询条件。查询所有普通用户的信息

30、。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT * FROM UserManAdmin.Users WHERE UserType=2查询用户Admin的密码信息。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT UserPwd FROM UserManAdmin.Users WHERE UserName=Admin(4)对查询结果进行排序。查询所有普通用户的信息,并按用户名的降序排列结果集。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT * FROM UserManAdmin.Users ORDER BY UserN

31、ame DESC(5)对记录进行统计。统计表Users中共有多少个用户记录。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT COUNT(*) FROM UserManAdmin.Users(6)实现连接查询。查看每个用户的登录记录。以SYSTEM用户登录到SQL*PLUS,然后执行如下代码:SELECT u.UserName, a.LoginTime FROM usermanadmin.Users u INNER JOIN usermanadmin.LoginInfo a ON u.UserId=a.UserID;在上面的SELECT语句中涉及两个表:表Users和表

32、LoginInfo。在FROM子句中,为每个表指定一个别名,表Users的别名为u,表LoginInfo的别名为a。6使用SQL语句创建视图使用CREATE VIEW语句创建用户登录信息表UserLogin,代码如下:CREATE VIEW UserLoginASSELECT u.UserName, a.LoginTime FROM usermanadmin.Users u INNER JOIN usermanadmin.LoginInfo a ON u.UserId=a.UserID;SELECT * FROM UserLogin;实验4 索引和序列管理目的和要求(1)了解索引的概念和作用;

33、(2)了解序列的概念和作用;(3)学习使用SQL语句创建索引;(4)学习使用SQL语句创建序列。实验准备(1)了解索引是对数据库表中一个或多个列的值进行排序的结构。可以利用索引快速访问数据库表中的特定信息。(2)了解序列号是一个Oracle整数,最多可有38个数字。序列的作用是自动生成整型数值,作为表中标识字段的值。有许多表在创建时定义了一个标识字段,此字段的值需要由系统自动生成,每当插入一条新记录时,此字段的值自动加1。在Oracle中,这个功能由序列来实现。(3)了解使用CREATE INDEX语句创建索引的方法。(4)了解使用CREATE SEQUENCE语句创建序列的方法。实验内容本实

34、验主要包括以下内容。(1)练习使用SQL语句创建索引;(2)练习使用SQL语句创建序列;1使用SQL语句创建索引使用CREATE INDEX语句在Users表的UserName字段上创建索引。代码如下:CREATE INDEX index_username ON usermanadmin.users (UserName)TABLESPACE Users;2在创建表的同时创建索引在使用CREATE TABLE语句创建表的同时,可以为指定字段创建索引。创建表Employees,在字段EmpName上创建索引。表Employees的结构如表5所示。表5 表Employees的结构编 号字段名称数据结

35、构说 明1EmpIdNUMBER编号2EmpNameVARCHAR2(50)姓名3SexCHAR(2)性别4UserIdNUMBER用户编号代码如下:CREATE TABLE Employees(EmpIdNumber, EmpNameVARCHAR2(50) UNIQUE, SexCHAR(2), UserIdNumber);3使用SQL语句创建序列使用CREATE SEQUENCE语句创建序列。序列的最小值为1,并且没有最大值限制。序列的初始值为1,序列间隔为1。代码如下:CREATE SEQUENCE EMP_SMINVALUE 1NOMAXVALUESTART WITH 1INCREM

36、ENT BY 1NOCYCLECACHE 20;2在插入数据时使用序列在使用INSERT语句向表Employees中插入数据时,可以使用序列EMP_S生成字段EmpId的值,代码如下:INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, Employee1,);INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, Employee2,);INSERT INTO Employees (EmpId, EmpName) VALUES(EMP_S.NEXTVAL, E

37、mployee3,);COMMIT;SELECT * FROM Employees实验5 PL/SQL编程目的和要求(1)了解PL/SQL语言的结构;(2)了解PL/SQL变量和常量的声明和使用方法;(3)学习条件语句的使用方法;(4)学习分支语句的使用方法;(5)学习循环语句的使用方法;(6)学习使用Oracle系统函数。实验准备首先要了解PL/SQL语言是结构化程序设计语言。块(Block)是PL/SQL程序中最基本的结构,所有PL/SQL程序都是由块组成的。PL/SQL的块由变量声明、程序代码和异常处理代码3部分组成。在PL/SQL中,常量和变量在使用前必须声明,可以使用DECLARE对

38、变量进行声明。实验内容本实验主要包括以下内容。(1)练习条件语句的使用方法;(2)练习分支语句的使用方法;(3)练习循环语句的使用方法;(4)练习使用Oracle系统函数。1使用条件语句参照下面的步骤练习使用条件语句。(1)以SYSTEM用户登录到SQL*PLUS。(2)执行如下程序,观察结果。SET ServerOutput ON;DECLARE Num INTEGER := -11;BEGIN IF Num 0 THEN dbms_output.put_line( 正数 ); ELSE dbms_output.put_line( 0 ); END IF;END;2使用分支语句参照下面的步骤

39、练习使用分支语句。(1)以SYSTEM用户登录到SQL*PLUS。(2)执行如下程序,观察结果。SET ServerOutput ON;DECLARE varDAY INTEGER := 3; Result VARCHAR(20);BEGIN Result := CASE varDAY WHEN 1 THEN 星期一 WHEN 2 THEN 星期二 WHEN 3 THEN 星期三 WHEN 4 THEN 星期四 WHEN 5 THEN 星期五 WHEN 6 THEN 星期六 WHEN 7 THEN 星期日 ELSE 数据越界 END; dbms_output.put_line( Result

40、);END;3使用循环语句LOOPEXITEND语句:此语句的功能是重复执行循环体中的程序块,直到执行EXIT语句,退出循环。LOOPEXIT WHENEND:此语句的功能是重复执行循环体中的程序块,直到满足EXIT WHEN后面的判断语句时,退出循环。WHILELOOPEND LOOP语句:此语句的功能是当WHILE后面的条件语句成立时,重复执行循环体中的程序块。参照下面的步骤练习使用循环语句。(1)以SYSTEM用户登录到SQL*PLUS。(2)执行如下程序,观察结果。程序一:SET ServerOutput ON;DECLARE v_Num INTEGER := 1; v_Sum INT

41、EGER := 0;BEGIN LOOP v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); IF v_Num = 3 THEN EXIT; END IF; dbms_output.put_line( + ); v_Num := v_Num + 1; END LOOP; dbms_output.put_line( = ); dbms_output.put_line( v_Sum );END;程序二:SET ServerOutput ON;DECLARE v_Num INTEGER := 1; v_Sum INTEGER := 0;BEG

42、IN LOOP v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); EXIT WHEN v_Num = 3; dbms_output.put_line( + ); v_Num := v_Num + 1; END LOOP; dbms_output.put_line( = ); dbms_output.put_line( v_Sum );END;程序三: SET ServerOutput ON;DECLARE v_Num INTEGER := 1; v_Sum INTEGER := 0;BEGIN WHILE v_Num =3 LOOP

43、v_Sum := v_Sum + v_Num; dbms_output.put_line( v_Num ); IF v_Num 3 THEN dbms_output.put_line( + ); END IF; v_Num := v_Num + 1; END LOOP; dbms_output.put_line( = ); dbms_output.put_line( v_Sum );END;4使用系统函数(1)数值型函数ABS:返回给定数字表达式的绝对值。CEIL:返回大于或等于所给数字表达式的最小整数。FLOOR:返回小于或等于所给数字表达式的最大整数。POWER:返回给定表达式指定次方的值

44、。ROUND:返回数字表达式并四舍五入为指定的长度或精度。(2)字符型函数ASCII:返回字符表达式最左端字符的ASCII代码值。LENGTH:返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。UPPER:返回将小写字符数据转换为大写的字符表达式。(3)日期型函数SYSDATE:返回当前日期和时间。TO_CHAR:转换日期为字符串。LAST_DAY:返回指定日期所在月份的最后一天的日期。这个函数可以被用来确定当前月中还剩下多少天。MONTHS_BETWEEN:返回两个日期之间月的数目。(4)统计函数COUNT:返回组中项目的数量。MAX:返回表达式的最大值。MIN:返回表达式的最小值。参照下面的步骤练

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号