第十章实验Word格式.docx
- 文档编号:6426135
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:10
- 大小:501.46KB
第十章实验Word格式.docx
《第十章实验Word格式.docx》由会员分享,可在线阅读,更多相关《第十章实验Word格式.docx(10页珍藏版)》请在冰点文库上搜索。
本试验所用的设备:
SQLServer2005、计算机一台
实验目的:
1.理解游标的概念
2.掌握定义、使用游标的方法
3.会用游标解决比较复杂的问题
实验内容及过程:
(1)定义及使用游标。
针对员工表定义一个只读游标“CUR1_游标”,逐行显示员工的所有信息。
代码如下:
USExmgl
GO
declare@员工号char(4),@姓名char(8),@性别char(8),@技术职称char(10),@工资money,@部门号char(4)
declareCUR1_游标cursor
for
select员工号,姓名,性别,技术职称,所在部门号,工资
from员工表
forreadonly
openCUR1_游标
fetchnextfromCUR1_游标into@员工号,@姓名,@性别,@技术职称,@部门号,@工资
while@@fetch_status=0
begin
select@员工号as员工号,@姓名as姓名,@部门号as部门号,@工资as工资
fetchnextfromCUR1_游标into@员工号,@姓名,@性别,@技术职称,@部门号,@工资
end
closeCUR1_游标
deallocateCUR1_游标
(2)使用游标修改数据
--针对员工表定义一个游标“CUR2_游标”,将游标中绝对位置为的员工姓名改为“杜兰特”,性别改为“男”。
declare@员工号char(4),@姓名char(8),@性别char(10),@部门号char(4),@工资money
declareCUR2_游标scrollcursor
select员工号,姓名,所在部门号,工资,性别
forupdateof工资
openCUR2_游标
fetchnextfromCUR2_游标into@员工号,@姓名,@部门号,@工资,@性别
select@员工号as员工号,@姓名as姓名,@部门号as部门号,@工资as工资,@性别as性别
update员工表
set姓名='
杜兰特'
where员工号=2003
set性别='
男'
where员工号=2003
closeCUR2_游标
deallocateCUR2_游标
(3)使用游标删除数据
定义一个游标“CUR3_游标”,将员工表中名为“杜兰特”的员工删掉。
declare@员工号char(4),@姓名char(8),@性别char(10),@部门号char(4),@工资money
declareCUR3_游标scrollcursor
openCUR3_游标
fetchnextfromCUR3_游标into@员工号,@姓名,@部门号,@工资,@性别
select@员工号as员工号,@姓名as姓名,@部门号as部门号,@工资as工资,@性别as性别
delete员工表
where姓名='
fetchnextfromCUR3_游标into@员工号,@姓名,@部门号,@工资,@性别
closeCUR3_游标
deallocateCUR3_游标
(4)针对项目管理数据库,设计嵌套游标,外层游标“CUR41_游标”显示每个员工的员工号、员工姓名、技术职称,所在部门,内层游标“CUR42_游标”逐个显示当前员工所参加的项目的情况,包括项目号、项目名称、承担职责。
declare@员工号char(4),@员工姓名char(8),@技术职称char(10),@所在部门char(10)
declare@项目编号char(4),@项目名称char(20),@项目起始日期char(10),@终止日期char(10),@承担职责char(10)
declare@messagechar(80)
--定义显示每个员工的员工号、员工姓名、技术职称,所在部门
declareCUR41_游标cursor
select员工号,姓名,技术职称,部门名
from员工表,部门表
where员工表.所在部门号=部门表.部门号
--打开游标
openCUR41_游标
fetchnextfromCUR41_游标into@员工号,@员工姓名,@技术职称,@所在部门
--显示员工号、员工姓名、技术职称,所在部门
select@message=@员工号+'
'
+@员工姓名+'
+@技术职称+'
+@所在部门
print@message
--定义然后逐个显示当前员工所参加的项目的情况
declareCUR42_游标cursor
for
select项目表.项目编号,项目名称,开工日期,完工日期,职责
from项目表,员工参与项目表
where项目表.项目编号=员工参与项目表.项目编号
and员工号=@员工号
openCUR42_游标--打开游标
fetchnextfromCUR42_游标into@项目编号,@项目名称,@项目起始日期,@终止日期,@承担职责
while@@fetch_status=0
begin
--显示项目号、项目名称、项目起始日期、终止日期,承担职责
select@message=@项目编号+'
+@项目名称+'
+@项目起始日期+'
+@终止日期+'
+@承担职责
end
closeCUR42_游标--关闭游标
deallocateCUR42_游标--释放游标
fetchnextfromCUR41_游标into@员工号,@员工姓名,@技术职称,@所在部门
closeCUR41_游标--关闭游标
deallocateCUR41_游标--释放游标
(5)在员工表中增加一列“参加的项目总数”。
创建游标“CUR5_游标”,利用游标在员工参与项目表中统计员工参加的项目数,然后将参加的数目填入员工表中的参加的项目总数列中。
declare@员工号char(4),@员工参加的项目数int
declare@项目编号char(4)
declare@参加的项目总数int
declareCUR5_游标cursor
select员工号,参加的项目总数
forupdateof参加的项目总数
openCUR5_游标
fetchnextfromCUR5_游标into@员工号,@员工参加的项目数
declareCUR5_游标_1cursor
for
select项目编号
from员工参与项目表
where员工号=@员工号
openCUR5_游标_1
fetchnextfromCUR5_游标_1into@项目编号
select@参加的项目总数=0
select@参加的项目总数=@参加的项目总数+1
end
closeCUR5_游标_1
deallocateCUR5_游标_1
set参加的项目总数=@参加的项目总数
wherecurrentofCUR5_游标
fetchnextfromCUR5_游标into@员工号,@参加的项目总数
closeCUR5_游标
deallocateCUR5_游标
任课教师评语:
教师签字:
年月日
注:
每学期至少一次设计性实验。
每学期结束请任课教师按时按量统一交到教学秘书处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 实验