数据库实验7
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七过程语言
一、实验目的:
通过本次实验,要求掌握变量定义,流程控制,存储过程,存储函数,游标等内容。
二、实验内容:
1)变量的声明和使用,掌握@@ERROR、@@ROWCOUNT、@@IDENTITY等全局变量的使用。
2)使用BEGIN…END、IF…ELSE…、 WHILE…CONTINUE…BREAK…、CASE等流程控制语句。
3)使用存储过程。
4)使用系统函数和用户自定义函数。
5)使用游标处理数据。
三、实验步骤:
1)用T-SQL语言完成1+2+3……+100,并使用@@ERROE判断是否执行成功,如果成功则输出值,否则打印执行失败。
2)更新STUDENTS表中sid为80000759500的学生的email为ddff@,并通过@@ROWCOUNT判断是否有数据被更新,如果没有则打印警告。
UPDATE STUDENTS SET email ='ddff@'
WHERE sid = 800007595
IF@@ROWCOUNT= 0
PRINT'警告!没有数据被更新'
3)使用IF…ELSE…语句,查询STUDENTS表中学号为800007595的学生,如果学生存在,则输出学生的各科成绩,否则打印查无此人。
4)中计算1+2+3……+100中使用的是WHILE语句
5)使用CASE语句,查询学号为800007595所选择的课程号为10042的成绩,如果为80分或以上,打印优秀,如果在60—80分之间则打印及格,否则打印不及格。
6)
实验内容
创建一个存储过程,该存储过程实现的功能:查找出选修database课程并且期末成绩为不及格(score<60)的学生,现张老师法外开恩,决定给这些不及格但是分数大于50分的同学加上五分平时分,执行存储过程后,要求显示出加完分后,仍然挂科的同学。
具体要求:
1、显示格式为:<课程名/学生姓名/加分前成绩/加分后成绩>,要求用函数
实现该显示功能;
2、加分使用游标实现;
3、存储过程输入参数为:<课程名,加分数>。
exec get_fail_students 'database',5;
四、实验总结
通过本次实验,我基本上掌握了变量定义,流程控制,存储过程,存储函数,游标等相关知识。同坐最后的第6个小实验,将上述内容综合应用,加深了对存储过程,存储函数和游标、变量的理解。同时,由于事发时助教老师对我们的输入输出格式有比较严格的要求,使我们对输出格式和结果的收集方式反复修改,在此过程中也让我们对数据库所做过的实验回忆起了不少内容,针对一开始输出结果中出现了好多不必要的空格的问题,助教老师亲情指导,提示我使用ltrim/rtrim函数,将空格消除后顿觉清爽许多,在此,谢谢助教。