- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
120802031016李泳志-实验9查询存储过程触发器完整性
数据库系统课程设计学 院: 商学院 专业班级: 12信管3班 学 号: 120802031002 学生姓名: 李泳志 指导教师: 高集荣 2015年 5月 12日实验9:查询、存储过程、触发器、完整性实验目的:1熟练掌握局部变量、游标的定义和使用。2熟练掌握存储过程、触发器的创建和使用。3掌握数据库完整性的约束的定义和使用。二、实验内容第一部分:T-SQL程序设计。第二部分:存储过程第三部分:触发器第四部分:数据库完整性三、实验记录第一部分:T-SQL程序设计。(1).如果3号课程的平均成绩在80分以上,则输出“3号课程成绩良好”,否则输出“3号成绩一般”(2)计算并输出95003号学生的平均成绩,若无该生信息,则显示“该生未选课”,提示信息. (3).如果有成绩在90分以上的学生,则显示他的学号,课程和成绩,否则显示“没有学生的课程成绩在90分以上”提示信息(4).利用游标逐行显示student表中的记录。(5).用自定义函数计算全体男生的平均年龄(6).显示course表中课程名的前2个字符。(7).在一列中显示student中各元组的学号中的年级,列名显示为“年级”;另一列中显示学号中的学生序列号,列名显示为“序号”。(8).在选课表中显示学号、课程号,并根据成绩:0-59显示“不合格”;60-79显示“合格”;80-89显示“良好”;90-100显示“优秀。”第二部分 :存储过程创建一个为worker表添加职工记录的存储过程.创建一个存储过程Delworker删除worker表中指定职工号的记录显示存储过程Delworker的定义信息。删除存储过程Addworker和Delworker。不要截图创建并执行以下存储过程:a.从数据库表中查询,返回学生学号、姓名、课程名、成绩b.从数据库表中查询指定学号的学生学号,姓名、班级,该存储过程接受与传递参数,精确匹配的值第三部分:触发器(1)在表depart上创建一个触发器 depart_update , 当更改部门号时同步更改 worker表中对应的部门号(2)在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除salary表中对应的职工记录。(3) 删除触发器(4) 删除触发器(5)在数据库中创建一个触发器,向选课表添加一条纪录时,检查该纪录的学号在学生表中是否存在,检查该纪录的课程号在课程表中是否存在,若其中有一项为否,则拒绝添加操作,并显示“违反数据一致性”提示信息。第四部分:数据库完整性1、实施worker表的“性别”字段默认值为“男”的约束2 实施salary表的“工资”字段值在0~9999的约束3 实施depart表的“部门号”字段值唯一的非聚集索引的约束4、为worker表建立外键“部门号”,参考表depart的“部门号”列。建立一个规则 sex:@性别=’男’OR @性别=’女’,将其绑定到worker表的“性别”列上。6、删除1小题所建立的约束删除2小题所建立的约束。删除3小题所建立的约束删除4小题所建立的约束10解除5小题所建立的绑定并删除规则sex四、实验结果及分析(1).如果3号课程的平均成绩在80分以上,则输出“3号课程成绩良好”,否则输出“3号成绩一般” if (select avg(成绩) from 选课 where 课程号=3)80beginprint 3号成绩良好endelsebeginprint 3号成绩一般end (2)计算并输出95003号学生的平均成绩,若无该生信息,则显示“该生未选课”,提示信息. declare @message varchar(200)if exists(select 学号 from 选课 where 学号=95003)begin select avg(成绩) from选课where 学号=95003 endelse begin set @message=该生未选课print @message end (3).如果有成绩在90分以上的学生,则显示他的学号,课程和成绩,否则显示“没有学生的课程成绩在90分以上”提示信息declare @msg varchar(200)if exists(select 成绩 from 选课 where 成绩=90) select 学号,课程号,成绩 from 选课where 成绩=90elseset @msg=没有学生的成绩在90以上print @msg(4).利用游标逐行显示student表中的记录。declare @cursorvar cursorset @cursorvar=cursor scroll dynamic for select* from 学生open @cursorvarfetch next from @
文档评论(0)