数据库原理与使用技术原理实验六
更新时间:2023-09-23 11:52:01 阅读量: 工程科技 文档下载
- 数据库原理及技术推荐度:
- 相关推荐
云南大学软件学院
实 验 报 告
课程: 数据库原理与实用技术实验 任课教师: 包崇明,朱艳萍 姓名: 冉荣华 学号: 20121070074 专业: 数字媒体技术 成绩:
实验6 数据库完整性
实验6-1 完整性约束
1、在学生表上面创建下列约束
(1)创建入学日期约束“Enter_University_date_rule”,假定该学校于1923年4月30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期
alter table 学生表
add constraint Enter_University_date_rule
check (入学日期>'1923-04-30' and 入学日期 (2)创建学生年龄约束“Age_rule”。要求:学生年龄必须在15~30岁之间 alter table 学生表 add constraint Age_rule check (年龄>15 and 年龄<30) (3)创建学生性别约束“Sex_rule”。要求:性别只能为“男”或“女” alter table 学生表 add constraint Sex_rule check (性别='男' or 性别='女') (4)创建学生成绩约束“Score_rule”。要求:学生成绩只能在0~100之间 alter table 成绩表 add constraint Score_rule check (成绩>=0 and 成绩<=100) (5)用图形方法查看学生成绩约束“Score_rule”,截图为: 2、删除约束Enter_University_date_rule alter table 学生表 drop constraint Enter_University_date_rule 3、创建声明式默认约束:在创建表的过程中创建声明式默认约束 (1)创建表“default_example”,表中包含字段pid、name、sex、age。要求设定sex的默认值为“男”、age的默认值为18。 输入数据: 编号 101 201 姓名 苏晴 马拯山 性别 女 年龄 20 创建语句: create table default_example ( 编号 int, 姓名 char(12), 性别 char(5) constraint sex_default default '男', 年龄 int constraint age_default default 18) insert into default_example(编号,姓名,性别) values(101,'苏晴','女') insert into default_example(编号,姓名,年龄) values(201,'马拯山','20') 执行结果为:查看:select * from default_example 表(图形查看)的结果 (2)插入一条 编号为100 的记录,执行结果为: alter table default_example add default 100 for 编号 结果: (3)修改默认值 一般先删除老的默认约束,再新建一个默认约束 删除约束:alter TABLE default_example drop 约束名 新建默认约束:alter TABLE default_example add constraint df_age default(19) for age 请将年龄默认值更改为19,执行结果为: 删除约束:alter table default_example drop age_default 更改约束(默认值) alter table default_example add constraint age_default default 19 for 年龄 图形化查看: 4、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及check约束,要求:学生的年龄必须是两位数,其中第一位是1或2: 学生表 授课表: 课程表: 成绩表: 删除check 约束: 删除check 约束: 学生表: 授课表: 课程表: 成绩表: 5、完成教科书456页如下习题: [7.1]a: 实验6-2 触发器 1、使用触发器 (1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数 create trigger trig_update on 学生表 after update as print 'Trigger Output:'+convert(varchar(5),@@rowcount)+'rows were updated.' (2)执行触发器 update 学生表 set 年龄='20' where 姓名='李涛' (3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息 alter trigger trig_update on 学生表 for update as print'Trigger Output:'+convert(varchar(5),@@rowcount)+'rows were updated.' print 'Inserted:' select * from inserted update 学生表 set 年龄='19' where 姓名='李涛' 2、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted)。 (1)在“学生表”上创建触发器ins_del_sample,在对学生表进行插入、删除或更新操作后,分别从inserted表和deleted表中查询学生学号、姓名、性别、年龄和所在院系。 (请同学们在做删除操作时,注意备份) create trigger ins_del_sample on 学生表 for update,insert, delete as print 'Inserted:' select 学号,姓名,性别,年龄,所在院系 from inserted print 'Deleted:' select 学号,姓名,性别,年龄,所在院系 from deleted return (2)执行插入、删除和更新操作后返回的表有什么区别? insert into 学生表 values('20091202','张三','男','21','计算机','软件班','2009/8/26') delete from 学生表 where 学号='20091202' update 学生表 set 姓名='谢四' where 学号='20091202' 3、使用系统存储过程查看触发器 (1)显示触发器trig_update的一般信息 (2)显示触发器trig_update的源代码 (3)显示“学生表”上所有的依赖关系 Exec sp_depends 学生表 (4)显示触发器trig_update所引用的对象 Exec sp_depends trig_update 4、难题(注意inserted表和deleted表的使用,并请自己修改数据表) (1)为“成绩表”创建一个触发器,当向表中插入数据时,如果成绩大于等于60分,该学生就能得到相应的学分,否则,该学生不能得到学分。 create trigger score_trigger on 成绩表 after insert as declare @grade float declare @score float select @grade=成绩from inserted select @score=学分from inserted update 成绩表 set 学分=(case when @grade>=60 then @score else 0 end) where 学号=(select 学号from inserted) 若插入一个成绩<60的记录后显示: 若插入一个成绩>=60的记录后显示: (2)为“学生表”创建一个触发器,当删除表中的一个学生资料时,将“成绩表”中的相应记录也删除掉 原成绩表: 删除后: (3)为“成绩表”创建一个触发器,如果成绩由原来的小于60分更改为大于等于60分时,该学生就得到相应的学分,如果成绩由原来的大于等于60分更改为小于60分,则该学生的相应学分更改为0。 create trigger score_trigger on 成绩表 after update as declare @grade float declare @score float select @grade=成绩from inserted select @score=学分from inserted update 成绩表 set 学分=(case when @grade>=60 then @score else 0 end) where 学号=(select 学号from inserted) 原始: 将 学号='20023001' and 课程号='C802'的成绩由99改为55 5、完成教科书456页如下习题: [7.11]a: 当输入不存在customers的city时显示: [7.11]b: 原PRODUCTS: 插入一条记录(1011,'jan','c001','a01','p01',1000,450)后, PRODUCTS表的变化:
正在阅读:
数据库原理与使用技术原理实验六09-23
第六章 萜类与挥发油05-14
公务员作自我介绍的注意事项(精选多篇)04-21
操作系统课设12-20
JAVA程序设计题库05-23
安全总体施工方案06-30
开展政法队伍教育整顿活动个人心得体会五篇08-21
银行个人授权委托书【通用7篇】03-25
纯芝麻酱生产企业质量管理手册03-21
- 2014年经济学知识:下面哪些生产要素可变成本理论考试试题及答案
- 阿托伐他汀的药理作用分析与控制血脂水平的临床疗效研究
- 瑞鹤仙雪球精华帖 - 图文
- 山东省寿光现代中学2017-2018学年高二下学期6月月考数学(理)试题-含答案
- 2019年自考《金融市场学》复习资料(八)
- 安江公司 - 平安交通建设集中整治活动实施方案
- 宏观经济学试题库
- 李煜
- MSDE2000 - 常见问题解决方案
- 普通心理学模拟试题
- 2018届小学数学总复习:知识归类讲解及训练 含答案
- 公司宣传工作会议主持词
- 高中语文君子之风练习试题
- 国际市场营销期末考试复习重点
- 考古学概论
- 解析微文化背景下加强大学生理想信念教育的思考
- 中南大学自动检测与控制实验报告8
- 汽车电气设备构造与维修期末考试卷-A-答案
- 幼儿园:按物体的特定规律排序(大班数学)
- 云南省昭通市环境影响评价审查专家库(社会区域等环评)