方法2:在创建表时同时设置参照完整性约束,并设置规则为级联。请写出SQL语句。
(4)修改Student表学号9512101为9512109,观察SC表中相应记录是否更新? (5)在Course表中删除课程代号为C01的记录,观察SC表中选课C01的记录是否删除?
3、用户自定义完整性 (1)设置Student表的Sno输入长度必须为7个字符的约束。请将CHECK约束子句写在下面: (2)设置student表的Sdept只能为“计算机系”,“数学系”,“信息系”,“物理系”。请将CHECK约束子句写在下面:
21
4、触发器
(1)定义一个触发器,其基本功能是在SC表中增加或修改一个选课记录时,检查该课程的选课人数是否超过限定(可自行定义一个限定值,根据表中数据的情况而定)。若超过限定值,则拒绝操作。 触发器代码:
(2)定义一个触发器,当删除Student表中数据时,先将删除的数据插入到另一个专门存放已删除数据的表中(实验时,首先定义一个与Student表结构相同的表用来存放删除的数据),然后执行删除操作。 触发器代码:
5、用户权限控制
(1)在自己数据库中添加其他用户。
(2)为添加的用户进行授权和权限收回。相互检查是否获得了相应的权限。
22
四、实验小结
五、评阅成绩
实验预习20% 实验过程20% 实验结果30% 实验报告30% 总成绩 23
实验六 视图与存储过程
一、实验目的
1、掌握视图的定义及使用
2、掌握存储过程的建立和调用
二、实验预习
1、基本表与视图有什么不同?哪种视图可以更新?
2、视图定义语句格式:
3、什么是存储过程,其作用主要是什么?
三、实验内容和要求
1、视图(将执行的SQL语句写在下面)
(1)建立视图IS_STUDENT,视图中包含信息系全体学生的基本信息。
(2)建立视图CJ_STUDENT,视图中包含所有成绩不及格的学生的学号,姓名,课程名,成绩。
24
(3)建立视图AVG_CJ,视图包括学生的学号以及他们的平均成绩,按成绩降序排列。
(4)修改视图IS_STUDENT,将年龄均加1。观察基本表Student中相应的数据是否发生变化。
(5)在视图IS_STUDENT中插入新的记录,学号为9531103,姓名为张玉,女,21岁。
(6)根据视图AVG_CJ,查询平均成绩大于60的学生的学号。
2、存储过程
(1)建立存储过程student_Grade1,功能是查询计算机系学生的成绩,包括学号,姓名,课程名,成绩,按学号升序排序。 存储过程代码:
25