Orale数据库复习题.doc
文本预览下载声明
Oracle数据库上机复习题
第一题 创建数据库和表(总分40分)
1、启动SQL*Plus,在sys帐户下创建学生基本信息表student、课程基本信息表course和成绩表score,通过限制条件实现数据的完整性,并显示表结构。(30分)
学生基本信息表student定义
列名 数据类型 大小 约束 含义 sno char 9 主键 学号 sname char 10 非空 姓名 ssex char 2 为男或女 性别 birthday date 出生日期 课程基本信息表course定义
列名 数据类型 大小 约束 含义 cno char 9 主键 课程号 cname varchar2 50 唯一 课程名 ccredit number 1 非空 学分 成绩表score定义
列名 数据类型 大小 约束 含义 sno char 9 主键,外键 学号 cno char 9 主键,外键 课程号 grade number 3 非空 成绩 2、向表中插入记录。(10分)
(1)向表中添加记录 计算机导论 3 SQL Server数据库技术 Oracle数据库技术 Linux操作系统 人工智能 3 (3)向成绩表中插入自己的五门课程成绩,并显示全部记录内容。
第二题 触发器的创建和使用(每题20分,任意其一)
1、在scott.emp表上创建一个触发器,不允许删除雇员号为7934雇员,并提示“禁止删除该名雇员”。
2、在scott.emp表上创建一个触发器,当插入、删除或修改员工信息时,统计各个部门的人数及平均工资,并输出部门名称。
第二题 创建PL/SQL块scott.emp表中查询该员工信息,并输出其员工号、工资,所在部门。如果该员工不存在,则提示该员工不存在。
2、利用带参的显式游标,任意输入一个员工的员工号,在scott.emp表中查询,并返回某员工所在部门的平均工资。
3、利用带参的显式游标,任意输入某个工作,从scott.emp表中逐条输出从事这一工作的每位员工的编号、姓名和受雇如期scott.emp表中工资高于平均工资的所有雇员的员工号,员工名和工资值。
5、利用带参的显式游标,任意输入一个部门号,逐条输出scott.emp表中每位员工的编号、姓名和scott.dept表中插入部门号80,90,100,部门名和地址见下表,显示插入后的表记录,最后删除序列。(10分)
deptno dname Loc 80 Computer China 90 English China 100 Chinese China 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,通过限制条件实现数据的完整性。
(1)创建学生基本信息表。(10分)
程序 CREATE TABLE student
(sno CHAR(9) PRIMARY KEY,
sname CHAR(10) NOT NULL,
ssex CHAR(2) CHECK(ssex in(‘男’,’女’)),
birthday DATE); (2)创建课程基本信息表。(8分)
程序 create table course
(cno char(9) PRIMARY KEY,
cname varchar2(50) UNIQUE,
ccredit number(1) not null ); (3)创建成绩表,学号和课程号为外键,二者联合构成主键,成绩不能为空,成绩值在0到100之间。(10分)
程序 create table score
(sno char(9) references student(sno),
cno char(9) references course(cno),
grade number(3) not null,
P
显示全部