资源描述:
《实验6SQL编程及存储过程实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验D06:SQL编程及存储过程实验一、实验名称和性质所属课程数据库原理实验名称SQL编程及存储过程实验学时2实验性质/□验证□综合/口设计必做/选做/□必做□选做二、实验目的1.了解T-SQL的基木数据类型、函数;2.掌握局部变量的定义和赋值;3.掌握存储过程的定义及调用三、实验的软硬件环境要求硬件环境要求:PC机(单机)使用的软件名称、版本号以及模块:WindowsXP卜-的SQLServer2000(或SQLServer2005)四、知识准备1.SQL中的基本数据类型:varchar:字符数据。datetime:(常量使用特定格式的字符
2、口期值來表示,并使用单引号括起來。例如「1976-05・2&,'May28,1976',28May,1976*,760528','05/28/76'。Integer:用一串数字来表示,不含小数点,不使用引号。例如,123,1896。Decimal:用一串数字来表示,可以包含小数点,不使用引号。例如,1893.1209,2.0。float和real:使用科学记数法表示。例如,101.5E5,0.5E-2。money:用一串数字,可以包含或不包含小数点,以一个货币符号($)作为前缀,不使用2.SQL屮的基木函数(1)字符串函数:LEN()、UPP
3、ER()、LOWER()、RIGHT()、LEFT()、SUBSTRING()、CHARINDEX()、STR()、REPLACE()等(2)数学函数:常用的数学函数通常对作为参数提供的输入值执行计算,并返回一个数字值。如ABS()、POWER()、SQUARE()、SQRT()、ROUND()、RAND()等。(3)FI期和吋间函数:Fl期和时间函数对Fl期和时间输入值执行操作,并返回一个字符串、数字值或口期和时间值。GETDATE()>DATEADD()>DATEIFF()、DATEPART()、ISDATE()、DAY()、MONTH(
4、)、YEAR()等(4)数据类空转换函数CAST函数CAST(expressionASdata_type)CONVERT函数CONVERT(data_type[(length)],expression[,style])1.存储过程的创建及调用CREATEproc过程名[{@变两名数据类型}JL...nJASSql语句调用:EXEC过程名参数列表DECLARE@变量名数据类型注意:SAL屮的局部变量名必须以@开头。五、实验内容1.基木结构编程;2.存储过程的建立;3.存储过程的调用六、验证性实验1.编程实现查询与'李勇'同系的学生学号USEST
5、UDENTGODECLARE@DEPAVARCHAR(20)SELECT@DEPA二DEPAFROMSWHERESNAME-李勇'SELECTSNOFROMSWHEREDEPA=@DEPA2.运行下ifii的程序,观察运行结果DECLARE@XINT,@YINTSET骐二0SELECT@丫二1WHILE@Y<20BEGINSET@X-@X+@YSELECT@Y=@Y+2PRINTSTR(@Y)+‘INTHELOOP'IF@Y〉14BREAKENDPRINT'OUTOFTHELOOP'CASE函数的使用(1)CASE后带表达式SELECT性别二
6、CASEsexWHEN'男'THEN'WHEN'女'THEN'P?ELSE'输入出错'ENDFROMS(2)CASE后不带参数SELECT性别二CASEWHENSEX二'男'THEN'WHENSEX-女'THEN'ELSE'ERROR'ENDFROMS1.存储过程(1)不带参数的存储过程GREATEPROCSCLISTASSELECTSNO,CNO,GRADEFROMSCWHERESNOIN(SELECTSNOFROMSWHEREDEPA」计算机系')执行存储过程:EXECSCLIST观察结果(2)带参数的存储过程如:传入一个学生的学号与姓名
7、,显示出这个学生选修的课程号,成绩CREATEPROCSC_PROC@XHVARCHARClOjASSELECTCNO,GRADEFROMS,SCWHERES.SNO二SC.SNOANDS.SNAME=@XH执行存储过程:EXECSC_PROC'200512’2.存储过程的相关操作(1)查看存储过程:Sp_helpSCLIST(2)重命名存储过程Sp_rename'SCLIST','STUDENTSCORE'七、设计性实验1.实验要求(1)调用帮助系统来查找系统存储过程或函数来显示SQLSERVER的版本号及当前系统时间。(提示:到帮助中根据
8、关键字等查询到对应的函数或存储过程來完成任务)(2)编写存储过程:完成1!+2!+・・・+n!的计算。(提示:传入参数n,根据•用循环控制来求对应的值)(3)将S