大型数据库实验报告(实验四)
大型数据库实验报告(实验四)
实验四 视图、序列
【实验目的】
(1)掌握视图的创建及管理方法;
(2)掌握序列的创建及使用方法。
【实验原理】
- 视图的创建及管理
- 序列的创建及使用
【实验内容】
一、创建管理视图
[操作验证]
(1)使用账户SYS登录数据库,对SCOTT账户进行解锁,并设置密码为Oracle11g。
(2)以scott用户登录数据库,以下操作在SCOTT模式下进行。查看该模式下所有emp和dept表的表结构。
(3)创建视图v_empSalary,用于查询每个员工的员工号empno、员工的姓名ename、工资sal、奖金comm,最终工资(=工资+奖金)。(提示:使用nvl(exp1,exp2)函数,即判断exp1是否为空值,如是空值该函数值为exp2的值;否则值为exp1的值,nvl(comm,0))
(4)使用视图v_empSalary,查询奖金低于1000元的员工号、员工姓名、工资、奖金。
(5)查询视图v_empSalary中各列的可更新性
(6)创建视图v_dep_avgsal,查询各部门员工的平均薪金
(7)查询视图v_dep_avgsal中各列的可更新性。
(8)创建视图v_depart_empl,查询在“Sales”部门任职的员工的员工号、员工姓名、部门名称dname、职位名称job、工资sal和奖金信息
(9)查询视图v_depart_empl中各列的可更新性。
二、创建管理序列
[操作验证]
(1)创建一个学生成绩表scores,其表结构如下所示:
学生成绩表scores结构
列名 | 列说明 | 数据类型 | 长度 | 为空性 | 约束或属性 |
---|---|---|---|---|---|
scoreId | 成绩序号 | int | 非空 | 主键 | |
studId | 学号 | Char | 10 | 非空 | |
courseId | 课程号 | char | 10 | 非空 | |
score | 成绩 | number | (4,1) | 默认为0 | |
insertTime | 录入时间 | date | 默认为系统时间 |
(2)创建序列seq_scoreId,将该值用于学生成绩表scores的成绩序号列scoreId,其初始值为100,增量为10。
(3)向学生成绩表插入5条以上记录,记录自拟,要求成绩序号列使用序列seq_scoreId的值。
(4)提交记录,并查询学生成绩表的所有记录。