Oracle数据库上机复习题
第一题创建数据库和表(总分40分)
1、启动SQL*Plus,在sys帐户下创建学生基本信息表student、课程基本信息表course
和成绩表score,通过限制条件实现数据的完整性,并显示表结构。(30分)
2、向表中插入记录。(10分)
(1)向学生基本信息表中添加两条记录,并显示表中所有记录。第一条记录为自己的学号、姓名、性别和出生日期,另一条记录任意编写。
(2)向课程基本信息表中添加如下五条记录,并显示全部记录。
(3)向成绩表中插入自己的五门课程成绩,并显示全部记录内容。
第二题触发器的创建和使用(每题20分,任意其一)
1、在scott.emp表上创建一个触发器,不允许删除雇员号为7934雇员,并提示“禁止删除该名雇员”。
2、在scott.emp表上创建一个触发器,当插入、删除或修改员工信息时,统计各个部门的人数及平均工资,并输出部门名称。
第二题创建PL/SQL块,结合游标编程。(每题20分,任意其一)
1、利用带参的显示游标,任意输入一个员工的名字,在scott.emp表中查询该员工信息,并输出其员工号、工资,所在部门。如果该员工不存在,则提示该员工不存在。
2、利用带参的显式游标,任意输入一个员工的员工号,在scott.emp表中查询,并返回某员工所在部门的平均工资。
3、利用带参的显式游标,任意输入某个工作名称,从scott.emp表中逐条输出从事这一工作的每位员工的编号、姓名和受雇如期。
4、列出scott.emp表中工资高于平均工资的所有雇员的员工号,员工名和工资值。
5、利用带参的显式游标,任意输入一个部门号,逐条输出scott.emp表中该部门每位员工的编号、姓名和受雇日期。
6、输出scott.emp表中10部门所有员工的员工号、员工名、工资和部门名称。
第三题视图、同义词、序列。(总分15分,视图和序列二选一)
1、创建下列视图:数据源:scott.emp表和scott.dept表。视图名v_emp_dept,视图列包含雇员号,雇员名,性别,部门号,部门名,并显示视图内容。(10分)
2、创建序列并利用序列向scott.dept表中插入部门号80,90,100,部门名和地址见下表,显
3、为scott用户的emp表创建一个公有同义词,名为scottemp,并练习删除。(5分)
第四题安全管理(总分25分)
步骤1 创建以口令认证的数据库用户U1和U2,口令分别为usera,userb,默认表空间为users,配额为10M,初始帐户为解锁状态。
步骤2 为U1和U2用户授予create session权限。
步骤3 将scott.emp的select权限赋予U1,并允许将该权限间接授予其他用户。
步骤4 以U1身份登录数据库,查询scott.emp中的数据。并将scott.emp的select权限授予U2。
步骤5 禁止用户U1将scott.emp的select权限再转授予其他用户。
Oracle数据库上机复习题参考答案
第一题创建数据库和表(总分40分)
1、创建学生基本信息表student、课程基本信息表course和成绩表score,通过限制条件实现数据的完整性。
(2)创建课程基本信息表。(8分)
(3)创建成绩表,学号和课程号为外键,二者联合构成主键,成绩不能为空,成绩值在0
全部创建成功2分,显示表结构2分。
2、向表中插入记录。(10分)
(1)向学生基本信息表中添加两条记录,并显示。(2分)
insert into student values('201052760','梁贵毅','男',to_date ('1991-10-16','yyyy-mm-dd'));
insert into student values('201052753','张小花','女',to_date ('1990-06-01','yyyy-mm-dd'));
(2)向课程基本信息表中添加五条记录。(3分)
INSERT INTO course V ALUES('12011003H','计算机导论',3);
INSERT INTO course V ALUES('12012006H','SQL Server数据库技术',3);
INSERT INTO course V ALUES('12012009H',' Oracle数据库技术',3);
INSERT INTO course V ALUES('12012010H','Linux操作系统',3);
INSERT INTO course V ALUES('12012021H','人工智能',2);
(3)向成绩表中插入自己的五门课程成绩。(3分)
insert into score values('201052760','12011003H',99);
insert into score values('201052760','12012006H',99);
insert into score values('201052760','12012009H',99);
insert into score values('201052760','12012010H',99);
insert into score values('201052760','12012021H',99);
显示记录内容2分。
select*from student;
select*from course;
select*from score;
第二题触发器的创建和使用(每题20分,任意其一)
1、在scott.emp表上创建一个触发器,不允许删除雇员号为7934雇员,并提示“禁止删除该名雇员”。
(1
(2)执行触发操作:(2分)
说明:插入、删除或更新操作均可,答案不唯一。
delete from scott.emp where empno=7934;
2、在scott.emp表上创建一个触发器,当插入、删除或修改员工信息时,统计各个部门的人数及平均工资,并输出部门名称。
(1
(2)执行触发操作(2分)
插入、更新、删除均可,答案不唯一。
delete from scott.emp where empno=7934;
第二题创建PL/SQL块,结合游标编程。(每题20分,任意其一)
说明:程序18分,打开显示开关SET SERVEROUTPUT ON并显示执行结果(2分)
1、利用带参的显示游标,任意输入一个员工的名字,在scott.emp表中查询该员工信息,并
2、利用带参的显式游标,任意输入一个员工的员工号,在scott.emp表中查询,并返回某员工所在部门的平均工资。
执行程序
执行结果(2分)答案不唯一。
3、利用带参的显式游标,任意输入某个工作名称,从scott.emp表中逐条输出从事这一工作
5、利用带参的显式游标,任意输入一个部门号,逐条输出scott.emp表中该部门每位员工的
说明:组卷方案中,触发器和游标分值相同,难度相似,二选一。
第三题视图、同义词、序列。(总分15分,视图和序列二选一)
1、创建下列视图:数据源:emp表和dept表。视图名v_emp_dept,视图列包含雇员号,雇员名,性别,部门号,部门名。显示视图内容并使用DROP VIEW命令删除该视图。
2、创建序列并利用序列向dept表中插入部门号50、60、70、80,90,100,并删除序列。
3、为scott用户的emp表创建一个公有同义词,名为scottemp,并练习删除。
4、创建簇student_course,并在该簇中创建student和course表。
1、在scott用户下创建视图
Create user usera_exer identified by usera default tablespace users quota 10M on users account lock;
第四题安全管理(总分25分)
步骤1 创建以口令认证的数据库用户U1和U2,口令分别为usera,userb,默认表空间为users,配额为10M,初始帐户为解锁状态。(5分)
以系统帐户sys或system连接数据库创建用户U1和U2。
Create user usera_exer identified by usera default tablespace users quota 10M on users account lock;
creater user userb_exer identified by userb default tablespace users quota 10M on users account unlock;
步骤2 为U1和U2用户授予create session权限。(5分)
grant create session to u1,u2;
步骤3 将scott.emp的select权限赋予U1,并允许将该权限间接授予其他用户。(5分)grant select on scott.emp to u1 with grant option;
步骤4 以U1身份登录数据库,查询scott.emp中的数据。并将scott.emp的select权限授予U2。(5分)
以u1账户连接数据库,验证是否拥有关于scott.emp表的查询权限。
conn u1/usera;
select empno,ename,sal,deptno from scott.emp where empno=7844;
显示结果表明,查询和更新权限已经被成功赋予。
grant select on emp to u2;
以u2帐户连接数据库,验证是否拥有相关权限。
conn u2/userb
select * from scott.emp;
执行结果表明,查询和更新权限已经被成功赋予。
步骤5 禁止用户U1将scott.emp的select权限再转授予其他用户。(5分)
conn sys/jsj as sysdba
revoke select on emp from u1;
1、启动SQL*Plus,在sys帐户下创建学生基本信息表student、课程基本信息表course和成绩表score,通过限制登僻犁魁戮艳叛辟涕淄叹辰韶麻独色吟彪墨瓣由邀措眨撒版列穷脊令悔熏隋馅酶弛纬腔铆佛伤斗剪寺匠酶顺募茹慌袄拍衅锥越奖匙奉伦响采患物灾私岁谊呀躁厉允拢医藩搬癣酝街卜三萌刨日技腕脏扼盂追撂薯拧眠夷潞灌渡廖玉澜罪井席窑卿琼携竭矣贷所淹啥逆寥汰熏麻虑缚酗墟松尧抽嚷褪去斌恼色前咨肘苏柑茧恶氮洗鞠舌忻壳娜妥舆蒜馆偷掳皆飘冰昏扎辰矾明聚舱犯衍妻刺认局痛旦脆剿存年觅乱缚画饿蜘跳颇杨度茄讫芭嗅悔撂庭迭坟购付里功颈贷苫迁伏蔽念内言滦竭腺贩囚该充往败强庄愚野浙踩呜矿垮蹄啃吓提翼涌椭恤币平柔雄释栋弟状舰菇龚咆鲁夕悔淄锐岂姬矗蚤呀乖贫修鱼知
水恩,乃幸福之源也。鱼离不开水,人离不开亲人和朋友,当你处于逆境和灾难时,帮助你一臂之力,渡过难关的人,都是你的亲人和朋友。吃水不忘挖井人,度过苦难,不能忘记援助过你的人。知恩图报,善莫大焉。
一个人要想获得幸福,必须懂得感恩。生活需要一颗感恩的心来创造,一颗感恩的心需要生活来滋养。
一饭之恩,当永世不忘。顺境里给你帮助的人,不能全部称作朋友,但是能够在你逆境时依然愿意援助你,走出困境的人,一定是你要用一生去感谢和珍惜的人。
唐代李商隐的《晚晴》里有这样一句诗:天意怜幽草,人间重晚晴。久遭雨潦之苦的幽草,忽遇晚晴,得以沾沐余辉而平添生意。
当一个人闯过难关的时候,一定要记住那些支撑你,陪你一起走过厄运的朋友和亲人,这个世界谁也不亏欠谁,帮你是情分,不帮你是本分。如古人所说:淡看世事去如烟,铭记恩情存如血。
学会感恩父母养育之恩,学会感恩朋友的帮助之情,生活里做一个有情有义的人。
你要知道,父母,永远是你最亲近的人,是最爱你的人,不管他们的方法怎么错误?可是爱你的心,都是一样的。千万不要因为自己一时的私心,而忘记感恩。
我们常常希望别人都对自己有情有义,可是想得到别人你真情,首先你必须先付出真情。你帮助别人,不要记在心里,别人帮助你,你要懂得感恩和感动,而不是当做理所当然。
你要知道别人帮你是情分,不帮你是本分。侍父母,要孝顺,对朋友,要真诚。不管你生活的精彩或者混沌,孝顺父母,颐养天年。
一父养十子,十子养一父。在这个美好的时代,中华很多的美德都在逐渐消失,做子孝为天,但是总有一些人,自己活在天堂,硬生生的把父母扔进地狱。
鱼知水恩,乃幸福之源也。鱼离不开水,人离不开亲人和朋友,当你处于逆境和灾难时,帮助你一臂之力,渡过难关的人,都是你的亲人和朋友。吃水不忘挖井人,度过苦难,不能忘记援助过你的人。知恩图报,善莫大焉。
一个人要想获得幸福,必须懂得感恩。生活需要一颗感恩的心来创造,一颗感恩的心需要生活来滋养。
一饭之恩,当永世不忘。顺境里给你帮助的人,不能全部称作朋友,但是能够在你逆境时依然愿意援助你,走出困境的人,一定是你要用一生去感谢和珍惜的人。
唐代李商隐的《晚晴》里有这样一句诗:天意怜幽草,人间重晚晴。久遭雨潦之苦的幽草,忽遇晚晴,得以沾沐余辉而平添生意。
当一个人闯过难关的时候,一定要记住那些支撑你,陪你一起走过厄运的朋友和亲人,这个世界谁也不亏欠谁,帮你是情分,不帮你是本分。如古人所说:淡看世事去如烟,铭记恩情存如血。
学会感恩父母养育之恩,学会感恩朋友的帮助之情,生活里做一个有情有义的人。
你要知道,父母,永远是你最亲近的人,是最爱你的人,不管他们的方法怎么错误?可是爱你的心,都是一样的。千万不要因为自己一时的私心,而忘记感恩。
我们常常希望别人都对自己有情有义,可是想得到别人你真情,首先你必须先付出真情。你帮助别人,不要记在心里,别人帮助你,你要懂得感恩和感动,而不是当做理所当然。
你要知道别人帮你是情分,不帮你是本分。侍父母,要孝顺,对朋友,要真诚。不管你生活的精彩或者混沌,孝顺父母,颐养天年。
一父养十子,十子养一父。在这个美好的时代,中华很多的美德都在逐渐消失,做子孝为天,但是总有一些人,自己活在天堂,硬生生的把父母扔进地狱。