大型数据库第八章实验.docx
- 文档编号:5831668
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:8
- 大小:798.46KB
大型数据库第八章实验.docx
《大型数据库第八章实验.docx》由会员分享,可在线阅读,更多相关《大型数据库第八章实验.docx(8页珍藏版)》请在冰豆网上搜索。
大型数据库第八章实验
第八章实验
实验目的和任务:
1)掌握变量的分类及使用
2)掌握各种运算符的使用
3)掌握各种控制语句的使用
4)掌握函数的使用
实验内容:
1变量的使用
声明两个字符变量,@a1,@a2,然后将他们转化为整形变量,对@a1赋初值10,@a2的值为@a1的值乘以5,再显示@a2的结果,执行程序显示结果
2分支结构的使用
查询某个部门员工参与的项目,如果该部门没有人参与任何项目,就在员工项目表中增加该部门至少一人去参与项目,否则不在该表中增加该部门人员,同时在员工表中将参与项目的员工工资增加200,以上增加和修改要求通过显式事务实现,如果成功则提交,否则回退,执行程序显示结果
3循环结构的使用
查询员工的基本信息,要求列出员工的职工号,姓名,部门编号,部门和工资,而对工资则不直接显示具体数值,而进行转换,显示工资级别:
1000~1200,为一级工资,1200~1500为二级工资,1500-2000为三级工资,2000-2700为四级工资,2800-3700为五级工资,高于3700为高级工资
要求按部门编号循环分批显示处理显示。
执行程序显示结果
4常用函数的使用
1)计算从1980年1月1日到当前日期的天数,月数,及年数
2)计算当前日期加上100天之后的日期
3)将日期2009/10/26转化为2009年10月26日的字符串
4)用函数计算字符串“Iamateacher”的长度,并使用函数将“student”替换为“teacher”
5)用函数求“Youareastudent”字符串中,从11开始,长度为7的子串
代码如下:
declare@i1char(100),@i2char(100)
set@i1='10'
set@i2=cast((cast(@i1asint)*5)aschar(100))
print@i2
go
declare@error1int,@error2int
begintransaction
ifnotexists(select*
from员工参与项目
where员工号in
(select员工号from员工表
where所在部门号in(
select部门号from部门表
where部门名='销售部')))
begin
insertinto员工参与项目values('2010','J004','家电促销')
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员工表
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
declare@startdatetime,@enddatetime
set@start=cast('1980-01-01'asdatetime)
select@end=getdate()
selectdatediff(dd,@start,@end)as'天数'
selectdatediff(mm,@start,@end)as'月数'
selectdatediff(yy,@start,@end)as'年数'
declare@olddatetime,@newdatetime
select@old=getdate(),@new=dateadd(dd,100,@old)
select@oldas'当前日期',@newas'100天之后的日期'
declare@datedatetime
set@date=cast('2009-10-26'asdatetime)
selectcast(year(@date)aschar(4))+'年'+
cast(month(@date)aschar
(2))+'月'+
cast(day(@date)aschar
(2))+'日'
printlen('Iamateacher')
printreplace('Iamateacher','teacher','student')
printsubstring('Youareastudent',11,7)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 数据库 第八 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)