版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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:返回表达式的
45、最小值。参照下面的步骤练习使用系统函数。(1)以system用户登录到sql*plus。(2)执行如下程序,观察结果。程序一:set serveroutput on;begin dbms_output.put_line( abs(-4) );end;程序二:set serveroutput on;begin dbms_output.put_line( ceil(116.24) ); dbms_output.put_line( ceil(-112.75) ); dbms_output.put_line( ceil(0) );end;程序三:set serveroutput on;begin db
46、ms_output.put_line( floor(116.24) ); dbms_output.put_line( floor(-112.75) ); dbms_output.put_line( floor(0) );end;程序四:set serveroutput on;begin dbms_output.put_line( power(15, 4) );end;程序五:set serveroutput on;begin dbms_output.put_line( round(123.456, 2) ); dbms_output.put_line( round(123.456, 1) );
47、 dbms_output.put_line( round(123.456, 0) ); dbms_output.put_line( round(123.456, -1) ); dbms_output.put_line( round(123.456, -2) ); dbms_output.put_line( round(123.456, -3) );end;程序六:set serveroutput on;begin dbms_output.put_line( ascii(abc) );end;程序七:select username, length(username) from usermanad
48、min.userswhere usertype = 1;程序八:set serveroutput on;begin dbms_output.put_line( upper(abc) );end;程序九:set serveroutput on;begin dbms_output.put_line( sysdate );end;程序十:set serveroutput on;begin dbms_output.put_line( to_char(sysdate) );end;程序十一:set serveroutput on;begin dbms_output.put_line( last_day(
49、sysdate) );end;程序十二:set serveroutput on;declare date1 varchar(20) := 2010-05-17 ; date2 varchar(20) := 2010-10-17 ;begin dbms_output.put_line( months_between( to_date( date2, yyyy-mm-dd ), to_date( date1, yyyy-mm-dd ) ) ); end;程序十三:select count( username ) from usermanadmin.users;程序十四:select max( us
50、erid ) from usermanadmin.users;程序十五:select min( userid ) from usermanadmin.users;实验6 使用游标、存储过程和触发器目的和要求(1)了解游标的概念和工作原理;(2)了解存储过程的分类和使用方法;(3)了解触发器的概念;(4)学习编写和执行自定义过程;(5)学习编写和执行自定义函数;(6)学习创建和使用触发器。实验准备首先要了解游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。了解pl/sql包括3种存
51、储过程,即过程、函数和程序包。了解触发器是一种特殊的存储过程,当指定表中的数据发生变化时自动运行。实验内容本实验主要包括以下内容。(1)练习创建和使用游标的方法;(2)练习编写和执行自定义过程的方法;(3)练习编写和执行自定义函数的方法;(4)练习创建和使用触发器的方法。1创建和使用游标创建游标mycursor,从表logininfo中读取指定用户的登录信息,操作步骤如下:(1)以usermanadmin用户登录到sql*plus。(2)执行如下程序:/*打开显示模式*/set serveroutput on;declare cursor mycursor( varusername varch
52、ar2 ) is select u.username, a.logintime from usermanadmin.users u, usermanadmin.logininfo a where u.userid = a.userid and u.username = varusername;begin -开始程序体 for var_loginrecord in mycursor( admin ) loop /*显示保存在记录变量var_loginrecord中的数据*/ dbms_output.put_line( 用户名: | var_loginrecord.username | , 登录时
53、间: | var_loginrecord.logintime ); end loop;end; -结束程序体2编写和执行自定义过程参照下面的步骤练习编写和执行自定义过程:(1)以usermanadmin用户登录到sql*plus。(2)执行如下程序,观察结果。/*创建示例过程resetpwd,此过程的功能是将表user中指定用户的密码重置为111111*/create or replace procedure usermanadmin.resetpwd( v_userid in number )asbegin update users set userpwd = 111111 where userid = v_userid;end;/*使用ex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届浙江省名校协作体G12联盟高三下学期二模数学试题(含答案)
- 河北建筑工程学院《模拟电子线路》2024-2025学年第二学期期末试卷
- 河南农业大学《汽车运用技术》2024-2025学年第二学期期末试卷
- 辽源职业技术学院《工程财务与会计》2024-2025学年第二学期期末试卷
- 天津交通职业学院《大学生KAB创业基础》2024-2025学年第二学期期末试卷
- 芜湖职业技术学院《自动控制原理》2024-2025学年第二学期期末试卷
- 吉林建筑科技学院《社交与礼仪》2024-2025学年第二学期期末试卷
- 德阳农业科技职业学院《中国古代文论》2024-2025学年第二学期期末试卷
- 2026年传感器在机械设计中的应用实例
- 2026年农业机械化的设计与实践案例
- 学校食堂员工培训课件
- 120调度员基础知识课件
- 磷石膏无害化治理和综合利用项目可行性研究报告方案
- 校园快递外卖管理制度
- 2025年7月辽宁省普通高中学业水平合格性考试生物试题(原卷版)
- 2025年三轮电动车项目市场调查研究报告
- 医用化学(第三版)课件 -第14章 醇酚醚
- 儿童除颤课件
- (北京科电)GEX-2000技术使用说明(出版)
- 供电所所长讲安全课
- 医院感染管理办法全文
评论
0/150
提交评论