《SQL Server数据库应用与维护》-实验9-存储过程_第1页
《SQL Server数据库应用与维护》-实验9-存储过程_第2页
《SQL Server数据库应用与维护》-实验9-存储过程_第3页
《SQL Server数据库应用与维护》-实验9-存储过程_第4页
《SQL Server数据库应用与维护》-实验9-存储过程_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告实验课程SQLServer数据库的应用与维护实验项目实验9存储过程指导教师班级学生姓名实验9存储过程一、实验目的掌握用户存储过程的创建操作。掌握用户存储过程的执行操作。掌握用户存储过程的删除操作。二、实验内容1、创建带输入参数的存储过程的存储过程。2、执行所创建的存储过程。3、删除所有新创建的存储过程。三、实验步骤(一)基础练习对应于student数据库1、创建一个无参存储过程StuScoreInfo,查询以下信息:学号,姓名,性别,课程名称,考试成绩。2、创建一个带参数的存储过程stu_info,该存储过程根据传入的学生编号在student表中查询此学生的信息。3、创建一个带参数的存储过程StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:姓名,课程名称,考试成绩。4、编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩。5、编写存储过程,根据传入的课程名统计这门课的成绩分布情况,即按照各分数段统计人数。(二)提高练习对应于员工工资表:Wage字段名称数据类型备注IDInt自动编号,主键姓名Char(10)工资Float1、先建库表建表语句USEmasterGO/*********************建库*******************/--检验数据库是否存在,如果为真,删除此数据库--IFexists(SELECT*FROMsysdatabasesWHEREname='Wage')DROPDATABASEWageGOCREATEDATABASEWageGO--建数据表--USEWageGOCREATETABLEProWage--程序员工资表(IDintidentity(1,1)primarykey,--工资编号姓名CHAR(10)NOTNULL,--程序员姓名工资FloatNOTNULL--工资)GO--插入数据--INSERTINTOProWage(姓名,工资)VALUES('来棱',1900)INSERTINTOProWage(姓名,工资)VALUES('张三',1200)INSERTINTOProWage(姓名,工资)VALUES('李四',1800)INSERTINTOProWage(姓名,工资)VALUES('二月',3500)INSERTINTOProWage(姓名,工资)VALUES('蓝天',2780)2、按照要求创建存储过程,并执行存储过程。请编写T-SQL来实现如下功能:(1)创建一个存储过程,对程序员的工资进行分析,月薪1500到10000不等,如果有百分之五十的人薪水不到2000元,给所有人加薪,每次加100,再进行分析,直到有一半以上的人大于2000元为止,存储过程执行完后,最终加了多少钱?(例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程测试。)(2)调用上述存储过程,查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,直至一半程序员的工资达到2200,3000,3500,4000,5000或6000元(3)创建存储过程,查询程序员平均工资是否在4500元,如果不到4500,则每个程序员每次加200元,至到所有程序员平均工资达到4500元。调用存储过程测试标准答案:--1、创建存储过程--ifexists(select*fromsysobjectswherename='Sum_wage')dropprocedureSum_wageGOcreateprocedureSum_wage@PWageint,@AWageint,@totalintaswhile(1=1)beginif(selectcount(*)fromProWage)>2*(selectcount(*)fromProWagewhereWage>=@PWage)updateProWageset@total=@total+@AWage,Wage=Wage+@AWageelsebreakendprint'一共加薪:'+convert(varchar,@total)+'元'print'加薪后的程序员工资列表:'select*fromProWage--调用存储过程1--execSum_wage@PWage=2000,@AWage=100,@total=0execSum_wage@PWage=2200,@AWage=100,@total=0execSum_wage@PWage=3000,@AWage=100,@total=0execSum_wage@PWage=4000,@AWage=100,@total=0execSum_wage@PWage=5000,@AWage=100,@total=0execSum_wage@PWage=6000,@AWage=100,@total=0--2、创建存储过程2--ifexists(select*fromsysobjectswherename='Avg_wage')dropprocedureAvg_wageGOcreateprocedureAvg_wage@PWageint,@AWageint,@totalintaswhile(1=1)beginif((selectAvg(Wage)fromProWage)<=@PWage)updateProWageset@total=@total+@AWage,Wage=Wage+@AWageelsebreakendprint'一共加薪:'+convert(varchar,@total)+'元'pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论