资源描述:
《SQL存储过程试题及答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、-写存储过程及调用存储过程/引.写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分,参数课程号。*/・2写出统计某门课选人数的存储过程,输入参数课程号,输出参数人数。/*3.创建存储过程,要求根据学生姓名杳看学生的籍贯.(要求:在存储过程里定义两个参数,第一个接收由调用程序指定的输入值(学生姓名),笫二个参数用于将该值返回调用程序)*//*4.程序员工资表:ProWage字段名称数据类型说明IDint自动编号,主键PNameChar(10)程序员姓名Wageint工资创建一个存储过程,对程序员的工资进行分析,刀薪15()0到1000()不等,如果有百分Z五十的人薪水不到2
2、0007G,给所有人加薪,每次加10(),再进行分析,肓到有一半以上的人大于2000元为止,存储过程执行完后,最终加了多少钱?例如:如果有百分Z五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:—共加薪:500兀加薪后的程序员工资列表:IDPNaiaeWage20001300190036002880请编写T-SQL来实现如下功能:查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,至Z—半程序员的工资达到220(),300(),35
3、00,4000,5000或6000元。/*5•编写一个存储过程PR_GET_PASS_RATE统计某门课程的及格率,其传入参数是课程号P_CNO,传出参数是该课程成绩的及格率P_PASSRATE,及格率的格式形如:86.56%。6.创建触发器T_l,功能是当向数据表学生添加记录时,显示学生的信息。createtriggerT_1on学生afterinsertasselect*from学生insertinto学生values(f300r;李四丁男;计本1(X)7.创建触发器T_2,功能是当向数据表班级添加、修改和删除记录时,显示学生的信息。createtriggerT_2on学生aft
4、erinsert,update,deleteasselect*from学生8.创建触发器T_3,功能是当修改班级班号,同步更新学生表的班号。6.创建触发器T_4,功能是当删除学生表的记录时,同步删除选课表屮的选课信息。createtriggerT_4on学生afterdeleteasdeclare@xhchar(IO)select@xh=学号fromdeleteddeletefrom选课where学号=@xhdeletefrom学牛where学号=,3002,/引.写出创建分数存储过程用于计算某门课程成绩最高分、最低分、平均分,参数课程号。*/usexsglgocreateproce
5、dureaa(@课无呈名nchar(l6))asbeginselect课程号,最高分-max(成绩),最低分=01血(成绩),平均分-avg(成绩)from成绩where课程号二@课程名groupby课程号endgoexecuteaaWT・2写出统计某门课选人数的存储过程,输入参数课程号,输出参数人数。usexsglgocreateprocedurebb@课稈号char(10),@人数intoutputasbeginselect@人数=(sclcctcount(课程号)from成绩where课程号=@课程号)enddeclare@人数int,@课程号char(4)set@课程号-00
6、2'execbb@课程号,@人数outputprint课程号为'+@课程号+'的人数:’+cast(@人数aschar(2))/*3.创建存储过程,要求根据学生姓名查看学生的籍贯.(要求:在存储过程里定义两个参数,笫一个接收由调用程序指定的输入值(学生姓名),第二个参数用于将该值返回调用程序)*/usexsglgocreateprocedurecc(@姓名char(10),@籍贯char(10)output)asbeginselect@籍贯=(select籍贯from学生where姓名=@姓名)enddeclare@姓名char(10),@籍贯char(10)set@姓名』廖小小,e
7、xeccc@姓名,@籍贯outputprint学生4@姓名4的籍贯是「+@籍贯USEWageGOCREATETABLEProWage一程序员工资表(IDintidentity(1,1)primarykey,■■工资编号PNameCHAR(10)NOTNULL,一程序员姓名WageintNOTNULL-I资)GO・・1、创建存储过程-ifexists(select*fromsysobjectswherename='Sum_wage')dropprocedur