




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验4 T-SQL语言实验目的:1、 掌握Transact-SQL语言中的变量、运算符、函数;2、 掌握Transact-SQL语句编写批处理和流程控制程序。3、 掌握游标的创建,打开,数据读取,关闭,销毁的基本方法实验内容和步骤:Transact-SQL语言是在SQL Server 2005 中使用的程序设计语言。不但包含了标准SQL语言部分,而且为了满足实际应用中的编程需要,在Transact-SQL语言中还另外增加了一些语言要素,它们包括注释、变量、运算符、函数和流程控制语句等。所有的语句都在查询分析器中执行。1. Transact-SQL语句实验内容1: 返回在程序执行过程中上一条SQL语句影响的记录数(全局变量ROWCOUNT),注意观察结果窗口。use teach-打开teach 数据库GO-查询学生表中的记录SELECT * FROM Student-查询上一条SELECT语句影响的记录数SELECT ROWCOUNT AS 第一次查询返回的记录数GO实验内容2: 查询学生表的人数,将返回的记录数赋给局部变量RowsUSE teachGODECLARE Rows int-声明局部变量-给局部变量赋值SET Rows=(SELECT COUNT(*) FROM Student)-显示局部变量的值SELECT Rows AS SELECT返回的记录数GO实验内容3: 设置一个局部变量为表,进行插入和查询操作- 定义变量为临时表DECLARE Table_Example TABLE (Col_num int PRIMARY KEY, Col_text char (50)- 向该变量中添加两行内容INSERT INTO Table_Example VALUES (1, this is a)INSERT INTO Table_Example VALUES (2, table data type example)- 从临时表中查询SELECT * FROM Table_ExampleGO实验内容4:(练习,自己试着写一下)设置一个局部变量其值为选修了课程的人数,并显示提示: DECLARE Rows int-声明局部变量-给局部变量赋值SET Rows=(SELECT COUNT(distinct sno) FROM SC )-显示局部变量的值SELECT Rows AS 选课人数GO实验内容5:检查sysdatabases中的每一个数据库,使用数据库标识号来确定数据库名称。USE master-打开master 数据库GO-DB_NAME 是一个函数,功能是根据数据库标识号,来返回数据库的名称SELECT dbid , DB_NAME(dbid) AS DB_NAMEFROM sysdatabases ORDER BY dbidGO实验内容6:从数据库中返回学生表的第2列的名称USE teachGO-定义局部变量,用于存放学生表的ID号DECLARE 学生表ID INT-OBJECT_ID是一个函数,功能是返回数据库对象的编号SET 学生表ID= OBJECT_ID(Student)-COL_NAME是一个函数, 返回指定表中指定字段的名称,即列名SELECT COL_NAME(学生表ID,2) AS 学生表中第2列的名称GO实验内容7:简单年、月、日函数SELECT MONTH(03/12/1998), DAY(03/12/1998),YEAR(03/12/1998)实验内容8:从系统当前日期中返回系统当前的年份数、月份数和天数。- GETDATE()函数返回系统当前日期SELECT YEAR(GETDATE() AS 当前年份, MONTH(GETDATE() AS 当前月份, DAY(GETDATE() AS 当前天数GO实验内容9:自己编写函数。编写一个函数,名称为“函数_学生选课数”,要求根据输入的学生学号,求此学生的选课数。USE teachGO-通过CREATE FUNCTION语句创建用户的自定义函数“函数_学生选课数”CREATE FUNCTION 函数_学生选课数(xuehao AS char(9) -函数的输入参数)RETURNS int -返回结果类型BEGIN -函数体 DECLARE 选课数 AS int SELECT 选课数 =COUNT(cno) FROM SC WHERE Sno=xuehao RETURN 选课数ENDGO-使用自定义函数,求选课表(SC)中每位学生的选课数SELECT DISTINCT Student.Sno,Sname,选课数=dbo. 函数_学生选课数(SC.Sno)FROM Student,SCWHERE Student .Sno=SC.SnoGO实验内容10: (练习,自己试着写一下)练习自定义函数,求每门课程的选课人数提示:USE teachGOCREATE FUNCTION 函数_选课人数(cno AS char(9) )RETURNS int BEGIN DECLARE 选课人数 AS int SELECT 选课人数 =COUNT(sno) FROM SC WHERE cno=cno RETURN 选课人数ENDGO-使用自定义函数,查询每门课的选课人数(注:没有人选的课程,不会出现)SELECT DISTINCT Course.Cno ,Cname ,选课人数=dbo. 函数_选课人数(SC.Cno)FROM Course,SCWHERE Co=SC.Cno GO-使用自定义函数,通过左外连接,保留了左边被舍弃的元组SELECT DISTINCT Course.Cno ,Cname ,选课人数=dbo. 函数_选课人数(SC.Cno)FROM Course left join SC on Co=SC.Cno GO2. 游标的创建和使用游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。T-SQL游标:该游标是基于Declare Cursor 语法,主要用于Transaction-SQL脚本、存储过程以及触发器中。Transaction-SQL游标在服务器处理由客户端发送到服务器的Transaction-SQL语句。使用游标要遵循以下顺序:声明游标打开游标读取数据关闭游标删除游标。1声明游标实验内容1:以下是一个符合SQL-92标准的游标声明,此游标是只读的,只能从头到尾顺序提取数据。 DECLARE S_CUR1 CURSOR FOR SELECT * FROM STUDENT FOR READ ONLY实验内容2:以下是一个符合T-SQL扩展的游标声明,此游标是动态游标,可前后滚动,可对姓名列进行修改。 DECLARE S_CUR2 CURSOR SCROLL DYNAMIC FOR SELECT * FROM STUDENTFOR UPDATE OF SName2. 打开游标声明游标之后,要使用游标提取数据,必须先打开游标。使用OPEN语句可以打开游标。打开游标后,可以使用全局变量CURSOR_ROWS查看游标中数据行的数目。实验内容3:打开游标S_CUR1,输出其行数 OPEN S_CUR1 SELECT 游标s_cur1的数据行数=CURSOR_ROWS注意:通过联机丛书来查询CURSOR_ROWS,来理解其值的含义3读取数据游标打开后,就可以使用FETCH命令从中读取数据。具体语句格式见联机丛书。实验内容4:从游标S_CUR1中提取数据,只能用NEXT提取数据。 FETCH NEXT FROM S_CUR1提示:选中该语句,点击执行,查看结果。再点击执行,查看结果。重复执行。实验内容5:从游标S_CUR2中提取数据:OPEN S_CUR2-读取游标第一行FETCH FIRST FROM S_CUR2-读取下一行FETCH NEXT FROM S_CUR2-读取上一行FETCH PRIOR FROM S_CUR2-读取最后一行FETCH LAST FROM S_CUR2-读取当前行的上二行FETCH RELATIVE-2 FROM S_CUR24关闭游标游标使用完后,要及时关闭游标,以释放当前的结果集并解除定位在该游标记录行上的游标锁定。实验内容6:关闭游标S_CUR1CLOSE S_CUR15删除游标关闭一个游标后,其数据结构仍存储在系统中,需要的时候仍然可以再次使用OPEN语句打开和使用该游标。如果确定以后不再使用该游标,则可以删除游标,将游标占用的系统空间释放出来。实验内容7:删除游标S_CUR1DEALLOCATE S_CUR13. 收获体会此次实验与之前的几次试验都大有所不同,此次实验的内容主要是关于Transact-SQL语言中的变量、运算符、函数以及游标的相关操作。对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理进修岗位竞聘大纲
- A-Level计算机科学2024-202年模拟试卷:图论算法与Python编程技巧
- 大学英语专业八级2025年阅读理解试卷:学术论文阅读理解能力提升策略
- 2025年注册安全工程师安全生产法模拟试卷(法规知识巩固与提升)
- 2025年注册电气工程师电力系统继电保护冲刺卷(实战考点)
- 第十一单元化学与社会检测卷-2024-2025学年九年级化学人教版(2024)下册
- 选择有效策略应对Msoffice试题及答案
- 三年级数学计算题专项练习及答案集锦
- 宫外孕诊断及治疗
- 2025年注册会计师CPA审计科目冲刺模拟试卷(风险评估与应对)-法规解读与应对策略
- 脑电图及临床应用
- 新《城镇燃气设施运行、维护和抢修安全技术规程》考试题库(含答案)
- 第八单元常见的酸、碱、盐基础练习题-+2024-2025学年九年级化学科粤版(2024)下册
- 2025年广西物流职业技术学院单招职业技能测试题库带答案
- 端午节活动:五彩绳
- 万科物业绿化养护管理手册
- 卡车充换电站建议书可行性研究报告备案
- 第十二周《遇见劳动之美点亮成长底色》主题班会
- 世界环境日环保教育班会 课件
- 临床诊疗指南-疼痛学分册
- 2024认定实际施工人法律风险防范与合同完善服务合同3篇
评论
0/150
提交评论