oracle大型数据库实验报告4_第1页
oracle大型数据库实验报告4_第2页
oracle大型数据库实验报告4_第3页
oracle大型数据库实验报告4_第4页
oracle大型数据库实验报告4_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、五、思考题及其它1、显示游标和隐式游标在用法上的区别?2 raise语句应该放在pl/sql块的哪个部分?当在异常和oracle错i吴之间建立关联时,应该 在哪个部分完成?3、实验报告要求本次实验书写两次,分别是(一)和(二)、(三)和(四)实验六:过程、函数、触发器实验学时:4实验类型:设计型实验目的及要求1 掌握过程的创建与维护;2. 掌握函数的创建与维护;3. 掌握触发器的创建于维护;4. 了解包的使用。二、实验主要内容1. 过程的创建与维护;2. 函数的创建与维护;3. 触发器的创建于维护;4. 包的使用。三、实验仪器设备在局域网环境下,冇一台服务器和若干台客户机。服务器成功安装ora

2、cle llg数据库服 务器(企业版),客户机成功安装oracle llg客户端软件,网络服务配置正确,数据库和客 户端正常工作。!1!实验内容与步骤()、过程的创建与维护1、编写一个过程,可以输入一个雇员名,如果该雇员的的职位为president就给他的工资 增加1000,如果该雇员的职位为manager,就给他的工资加500,其他职位的雇员工资增 加200o并在sql*plus中调用该过程以修改ford的工资。2、创建一个过程avg_sab用于输出emp表中某个部门的平均工资,并在pl/sql匿名块中 调用该过程输出20号部门的平均工资。3、从雇员基本信息表(emp)中统计各部门(dept

3、no)人数后,将结果打印出来。(选做)create or replace procedure sum_count is _创建一个游标,查询dept所冇的部门dept_cu rsor % rowtype;一定义一个游标类型的变量 一定义个变量來存储部门人数begin打开游标loop into dept_cursor; 一读取游标select count(*) into num from empwhere deptno= dept_cursor.deptno;/*填充代码,打卬输出部门号及其对应的部门人数夭/exit when %notfound;-退出循环end loop; -关闭游标comm

4、it;end;-执彳亍存储过程s um_co unt(二)、函数的创建与维护1、创建一个函数get_sum_salary,获取某部门的人数(out参数)和工资总和(返回值)。并 统计10号部门的人数及工资总和。(三)、触发器的创建于维护1、创建一个before触发器tri_emp_sal,当进行update操作时,员工工资只能涨不能降, 不允许删除员工记录,并修改sal和删除记录,查看相关信息。2、创建instead of触发器。首先创建一个视图my view, ill于该视图是复合查询所产牛的 视图,所以不能执行dml语句。根据用户对视图所插入的数据判断需要将数据插入到哪个 视图基表中,然后

5、对该基表执行插入操作(选作)。(四)、包的使用(选做)1、创建的包为demo.pkg,该包屮包含一个记录变量deptrec、两个函数和一个过程。实现 对dept表的增加、删除与查询。-程序包头的创建create or replace package demo_pkg isdeptrec dept%rowtype;add dept function声明.-delete dept funtion声明.一一query dept procedure声明.end demo_pkg;/*包主体的创建方法,它实现上面所声明的包定义*/ create or replace package body demo_

6、pkg is-add_dept:定文一一de 丄 ete_dept 定文一一定义 query_deptend demo_pkg;/ *对包内共冇元索的调用格式为:包名元索名称调用demo_pkg包内函数对dept表进行插入、查询和删除操作, 并通过demo_pkg包中的记录变量dep trec显示所查询到的数据库信息:* /五、思考题及其它1传递参数方式有哪些?2、过程与函数的使用原则?3、beforex afterinstesd of触发器分别用在什么场合?4、实验报告要求请从(一)、(二)、(三)各选一道题写到实验报告中。实验七表、视图、索引、同义词、序列实验学时:5实验类型:设计型一、实

7、验目的1、掌握sql语言中表、索引、视图的创建及其使用方法。2、掌握sql语言中查看索引、同义词、序列生成器创建方法。二、实验环境1、硬件设备:计算机局域网,服务器1台,客户机100台2、软件系统:windows xp客户机操作系统;oraclellg服务端数据库系统,客户端工具。三、实验内容及步骤(一)表的创建、维护及其使用方法1. 创建表空间(1)创建表空间名称为medicine要求:表空间文件路径为'd:oracleoradatemybasemedicine.dbf',大小为 50m; 采用本地化管理(local),盘iii扩展采用白动方式;同时采用手工段空间管理 力式,

8、并记录口志信息。2. 创建表结构利用sql*plus或pl/sql developer将下列各表建立到员工医疗保险系统数据库中。表 结构见附录员工医疗保险系统表表4所示。3. 查看表结构(1)利用sql*plus从数据字典dba_tab .columns查看员工医疗保险系统所有表的字段信 息。 利用sql*plus从数据字典dba_ constraints查看员工医疗保险系统所有表的约束信息。 4 修改表结构(1) 利用sql*plus将表“staff”重新命名为“staff_学号后两位(如staff2)”。 利用sql*plus为“staff_学号后四位”表添加“age int”、“sala

9、ry number(5,2)”两个字 段,利用desc命令查看“staff_学号后两位”表的字段信息。 利用sql*plus向学号后两位”表添加“sname”字段惟一性约束,从数据字典 dba_constraints查看“staff_学号后两位”表的约束信息。(5) 利用sql*plus删除“staff_学号后两位”表上“sname”字段惟一性约束,从数据字典 dba_constraints查看“staff_学号后两位”表的约束信息。(6) 利用sql*plus将“staff.学号后四位”表“sname"字段长度修改为30,利用desc命令 查看“staff.学号后两位”表的字段信息

10、。4. 插入表数据(选做)分别利用sql*plus向员工医疗保险系统的每个表中插入记录。记录插入数据过程小遇 到的问题及解决方法,注意体会各种约束对插入数据的影响和表数据的插入顺序。(2) 利用sql*plus创建员工表2( “staff2”),向表中插入5条不同的记录,注意与员工表中 数据必须不同,主耍体现在主键员工编号上,执行下面的操作:川多行数据插入的方法将员工表2中数据插入到员工表,观察执行的结果。将命令再执行一次,观察执行的结果,分析产主的错谋原因。 利用sql*plus且使用表间数据复制的方法创建员工表3( “staff3” ),将全部字段的值复 制到员工表3,查看员工表3的内容,

11、体会表间数据复制的含义。 利用sql*plus且使用表间数据复制的方法创建员t表4( “staff4” ),将部分字段的值复 制到员工表4,查看员工表4的内容,比较员工表3和员工表4中数据的不同,进一步体会 表间数据复制的含义。5. 删除表数据(选做)(1)利用sql*plus删除某庾院编号的医院信息,看能否成功。查看就诊表数据,从原理上解 释原因,同吋记录数据删除过程中遇到的问题及解决方法,注意体会外键约束数据删除方式 对删除数据的影响。利用rollback命令恢复所有数据。6. 删除表结构(选做)(1)利用sql*plus删除员工表3,看能否成功。从原理上解禅原因,同时记录外键约束表删 除

12、顺序的影响。利用sql*plus删除员工表4,并立即释放表空间,并r不希望将其放置到回收站里,看 能否成功。从原理上解释原因,同时记录外键约束表删除顺序的影响。(-)视图的创建、维护及其使用方法(必做)1. 创建视图利用sql*plus建立可以添加工作为'clerk的雇员的视图vu_emp_clerk,包含列编号、姓 名、工作,不允许添加其他工种的雇员信息。测试:向视图插入如下一条记录,能否插入成功,并分析原因sql> insert into vu_emp_clerk (empno,enamejob)values (1234,李四'/salesman');(2)建

13、立视图vu_sal_view显示工资高于部门平均工资的雇员姓名、工资和部门号。能否向 对该视图进行dml操作,并分析原因。2. 查看视图(1)查看视图定义sql>desc vu_emp_clerk;sql>select text from user_viewswhere view_name=upper(/vu_emp_clerk,);3. 删除视图(1)利用 sql*plus 删除"vu_emp_clerk” 视图。(三)索引的创建、维护及其使用方法(必做)1. 创建索引(1)利用sql*plus为员工表的员工姓名、员工性别、岀生年月排序,以员工姓名升序、员工 性别降序、

14、出生年月降序排列,索引名为"empjnfo_index2. 查看索引(1)利用sql*plus从dba_indexes数据字典中查看“staff_info_index”索引的信息,并査看 该索引列的顺序及状态。3. 删除索引(1)利用 sql*plus 将“empjnfo_index 索引删除(四)同义词、序列的创建、维护及其使用方法(选做)1. 创建同义词利用sql*plus创建医保卡表(card)的同义词,名为“ybk”。2. 查询同义词(1)利用sql*pluss查看同义词“ybk”。3. 删除同义词(1)利mj sql*plus 删除同义词 “ybk”。4. 创建序列利用sq

15、l*plus创建序列,该序列最大值无限制,最小值为“1”,步长为“10”,序列名为 “ygbx_seq2”。5. 查询序列利用sql*plus查看同义词"ygbx_seq2”。6 .修改序列(1)利用sql*plus修改序列“ygbx_seq2”,将该序列最大值设为“1000”。7. 删除序列(1)利用 sql*plus 删除序列 “ygbx_seq2”实验八oracle用户权限管理与分配实验学时:3实验类型:设计型一、实验目的及要求1、掌握oracle的用八的创建与维护;2、掌握oracle数据库权限的分配打管理;3、了解oracle数据库角色的创建与管理;4、掌握oracle用资

16、源配直文件profile管理密码。二、实验主要内容1、用户的建立、修改、查看、删除操作。2、权限的建立、修改、查看、删除操作。3、角色的建立、修改、查看、删除操作。4、资源配置文件profil的建立、修改、查看、删除操作。三、实验仪器设备在局域网环境下,冇一台服务器和若干台客户机。服务器成功安装oracle llg数据库服 务器(企业版),客户机成功安装oracle llg客户端软件,网络服务配置正确,数据库和客 户端正常工作。四、实验步骤(-)用户创建与管理1、创建用户。 创建“姓名(英文)用户,密码为“学号",默认表空间为"users",临时表空间为“temp

17、”。 利用sql*plus,创建“姓名(英文)_sql用户,密码为“学号+sql,该用户处于锁状态。2、查看用户。 利用sql*plus,从dba_users数据字典屮杳看"姓名(英文)_sql用户的信息,并杳看该 用户验证的方式。 利用sql*plus,从dba_users数据字典中查看“姓名(英文)_sql用户的默认表空间和 临时表空间的信息。3、修改用户。利用sql*plus,修改“姓名(英文)_sql用户,将该用户解锁,并将密码改为“sql+学号。(-)权限管理。授予"姓名(英文)"用户"create any table"、"

18、create any index"、"alter any table"、 "drop any table"、"drop any index以及 “create session ” 系统权限,并用 with admin option传递权限。 利用sql*plu,将"姓名(英文)用户"create any table"和“create session”系统权限 授予“姓名(英文)_sql用户。 授了“姓名(英文)卅户对“scott模式屮"emp表的查看、修改、删除等对象权限。 利用sql*plus

19、,回收"姓名(英文)"用户在“scott模式中对"emp"表的査看、修改、删 除等对象权限。 利用sql*plus或isql*plus,收回"学号_sql"用户的"create any table"系统权限。(三)角色的创建与管理。1、创建角色 创建“role+学号角色,赋予该角色能对表、索引、存储过程进行基本操作的权限。 利用sql*plus,创建"学号_sql角色,该角色具有"create index"系统权限,并将该角色 赋予“姓名_sq|用户。2、查看角色。 查看"r

20、ole+学号"角色所具有的所有权限(查看视图dba_sys_privs或role_sys_privs) 利用sql*plus,查看“学号_sql角色所具有的所有权限。3、修改角色。 修改“role+学号角色,增加对角色的基本操作,并收回存储过程和序列的操作权限。 利用sql*plus或isql*plus,修改"学号_sql角色,收回"create index"系统,而授予"select any table"系统权限。 给角色“学号_sql设迸密码“学号_sql”,然后设迸该角色牛效。4、删除角色。 删除“role+学号角色。 利用sql*plus,删除“学号_sql角色。5、删除用户。 删除“姓名"用户。 利用sql*plus,删除“姓名_sql用户。(四)资源配置文件prof ile的建立、修改、查看、删除操作1创建profile文件。利用sql*plus创建概要文件“学号_pro,要求在此概要文件屮登录失败次数为5,锁定 天数为1,密码有效期为60天,宽限时间为3天,密码可重用的时间为10天。2、查看profile文件。 利用sql*plus,从dba_profiles数据字典屮查看"学号_pro概要文件的资源名称和资源 值等信息。 利用sql*plus,从查看“学号_p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论