第八章实验.docx

上传人:b****7 文档编号:9011399 上传时间:2023-02-02 格式:DOCX 页数:11 大小:483.06KB
下载 相关 举报
第八章实验.docx_第1页
第1页 / 共11页
第八章实验.docx_第2页
第2页 / 共11页
第八章实验.docx_第3页
第3页 / 共11页
第八章实验.docx_第4页
第4页 / 共11页
第八章实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

第八章实验.docx

《第八章实验.docx》由会员分享,可在线阅读,更多相关《第八章实验.docx(11页珍藏版)》请在冰豆网上搜索。

第八章实验.docx

第八章实验

云南师范大学信息学院

实验报告

学号:

姓名:

班级:

课程名称:

大型数据库管理系统

实验名称:

Transact-SQL程序结构

实验性质:

①综合性实验②设计性实验③验证性实验

试验时间:

试验地点:

本试验所用的设备:

SQLServer2005、计算机一台

实验目的:

1.掌握变量的分类及使用

2.掌握各种运算符的使用

3.掌握各种控制语句的使用

4.掌握函数的使用

实验内容及过程:

(1)变量的使用。

声明两个字符变量:

@i1和@i2,然后将它们转换为整形变量,对@i1赋初值:

10,@i2的值为:

@i1的值乘以5,再显示@i2的结果。

执行程序显示结果。

代码如下:

declare@i1char(100),@i2char(100)

set@i1='10'

set@i2=cast((cast(@i1asint)*5)aschar(100))

print@i2

go

(2)分支结构的使用。

查询某个部门(销售部)员工参与的项目,如果该部门没有人参与任何项目,就在员工项目表中增加该部门最少一人去参与项目。

否则不在该表中增加该部门人员。

同时在员工表中对参与项目的员工工资增加200,以上增加和修改要求通过显式事务实现,如果成功提交,否则回退。

执行程序显示结果。

代码如下:

USExmgl

GO

declare@error1int,@error2int

begintransaction

ifnotexists

(select*

from员工参与项目表

where员工号in

(select员工号

from员工表

where所在部门号in

(select部门号

from部门表

where部门名='销售部')))

begin

insertinto员工参与项目表values('2010','J4','家电销售')

end

select@error1=@@error

update员工表

set工资=工资+200

where员工号in

(selectdistinct员工号

from员工参与项目表)

select@error2=@@error

if@error1=0and@error2=0

begin

committransaction

end

else

begin

if@error1<>0

print'错误发生在查询语句'

if@error2<>0

print'错误发生在修改语句'

rollbacktransaction

end

select*from员工表

(3)循环结构的使用。

查询员工的基本信息,要求列出员工的职工号,姓名,部门编号,部门,工资,而对工资不是直接显示具体数值,而是进行替换,显示工资级别。

1000到1200的,为一级工资,1200到1500的是二级工资,1500到2000的是三级工资,2000到2700的是四级别工资,2800到3700的是五级别工资,高于3700的为高级。

要求按部门编号循环分批处理显示。

执行程序显示结果。

代码如下:

declare@maxNumchar(4),@minNumchar(4)

select@maxNum=(selectmax(部门号))from部门表

select@minNum=(selectmin(部门号))from部门表

while(cast(@minNumasint)<=cast(@maxNumasint))

begin

select员工号,姓名,所在部门号,部门名,工资=case

when工资>=3700then'高级工资'

when工资>=2800then'五级工资'

when工资>=2000then'四级工资'

when工资>=1500then'三级工资'

when工资>=1200then'二级工资'

when工资>=1000then'一级工资'

end

from员工表,部门表

where员工表.所在部门号=部门表.部门号

and员工表.所在部门号=@minNum

set@minNum=cast((cast(@minNumasint)+1)aschar(4))

end

(4)常用函数的使用。

1.计算从1980年1月1日到当前日期的天数、月数及年数。

代码如下:

declare@startdatetime,@enddatetime

set@start=cast('1980-01-01'asdatetime)

select@end=getdate()

selectdatediff(dd,@start,@end)as'天数',

datediff(mm,@start,@end)as'月数',

datediff(yy,@start,@end)as'年数'

2.计算当前日期加上100天之后的日期。

代码如下:

declare@olddatetime,@newdatetime

select@old=getdate(),

@new=dateadd(dd,100,@old)

select@oldas'当前日期',@newas'100天之后的日期'

3.将日期2009/10/26转换为2009年10月26日的字符串。

代码如下:

declare@datedatetime

set@date=cast('2009-10-26'asdatetime)

selectcast((year(@date))aschar(4))+'年'

+cast((month(@date))aschar

(2))+'月'

+cast((day(@date))aschar

(2))+'日'

4.用函数计算字符串‘Iamateacher.’的长度,并使用函数将“student”替换为“teacher”。

代码如下:

printlen('Iamateacher.')

5.用函数求“Youareastudent”字符串中,从11开始,长度为7的子串。

代码如下:

printsubstring('Youareastudent',11,7)

任课教师评语:

 

教师签字:

年月日

注:

每学期至少一次设计性实验。

每学期结束请任课教师按时按量统一交到教学秘书处

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1