欢迎访问web记录!每一步的成长都是一种幸福,聪明的女孩擅长记录幸福!
您现在的位置:web记录 > 数据库 >

T-SQL编程

更新时间:2012-11-21 浏览次数:
T-SQL编程
实验目的:
1、掌握常量和变量的定义以及赋值方法;
2、掌握变量在查询语句中的应用;
3、掌握运算符和表达式的分类以及SQL编程中的应用。
4、掌握流程控制语句在实际编程中的应用
实验内容:
在表bm1zgda1gzqk1的基础上进行以下查询。
1、定义字符类型的局部变量@var1,@var2分别给变量赋值并且输出值来。
2、定义局部变量@sex,为其赋值为,使用该变量查询zgda1表中所有性别为‘男’的职工号、职工姓名和职工性别。(注意在where语句中是用该变量)
3、定义三个局部变量,通过select语句将表bm1dp_id,dp_name,dp_manage三个字段的值赋予他们并将其输出来。
4、定义局部变量@gongzi,为其赋值为1000,查询教师的平均工资大于1000元的院系名称和该院职工的平均工资。(注意在where语句中是用该变量)
5、zgda1表中查询职工的编号、姓名和年龄。
6、定义两个局部变量并分别给其赋值,分别对两个变量进行和‘异或’运算,并将结果输出来。
7、创建一个变量@CurrentDateTime,然后将GETDATE( )函数的值放在变量中,
最后输出@ CurrentDateTime的值。
8、查询bm1表,将返回的记录数赋值给变量@RowReturn
9、查询教师实发工资大于1500元的人数,把人数赋给自定义的变量,把该变量
的值输出来。(在该程序中使用if语句判断)
10、查询“机电系”教师中工资最高和工资最低的职工号和姓名。根据gzqk1
中实发工资,查询计算机系教师的平均工资,如果该系教师的平均工资高于1500元,则输出“工资水平较高!”,并且把该系的平均工资数输出来,否则输出“工资水平较低”,同时也显示该系的平均工资数。
11、给gzqk1表添加字段“工资水平”,使用CASE语句给该字段赋值。若应发工资在2000元以上该字段值为“工资水平较高”,若应发工资在1500元到2000元之间,则该字段为“工资水平中等”,1000元以下则该字段为“工资水平较低”。
12、使用goto语句实现10!
13、使用while语句实现100以内数的累加,当累加和大于2000时,结束循环。(使用break语句)
14、使用while语句求50以内奇数的和。(使用continue语句)
15、使用while…cintinue…break语句求5的阶乘。
16、使用星号”*”在屏幕上输出一个正方形(55)
17、在程序中使用waitfor语句,是WAITFOR后面的语句等待5秒钟后继续执行。
18、使用循环语句打印图形长方形。


1.
use 人事数据库1
DECLARE @var1 char(10),@var2 char(5)
SET  @var1='快乐'
SET  @var2='幸福'
select @var1,@var2
2.
declare @sex char(2)
set @sex='男'
select E_id,E_name,E_sex from zgda
where E_sex=@sex
go
3.
declare @id varchar(2),@name varchar(10), @manager varchar(10)
select @id=Dp_id,@name=Dp_name,@manager=Dp_manager from bm where Dp_id='01'
select @id,@name,@manager
go
4.
declare @gongzi money
set @gongzi=1000
select bm.Dp_name,AVG(gzqk.E_recsalary)as pj from bm,gzqk,zgda
where gzqk.E_id=zgda.E_id and zgda.Dp_id=bm.Dp_id and zgda.E_zhiwu='教师'
group by bm.Dp_name having AVG(E_recsalary)>@gongzi
go
5.
select E_id,E_name,year(GETDATE())-YEAR(E_birthday) as age from zgda
6.
declare @var1 bit, @var2 bit
set @var1='false'
set @var2='true'
select ~@var1,~@var2,@var1 & @var2,@var1 | @var2,@var1^@var2
7.
declare @CurrentDateTime datetime
SELECT @CurrentDateTime=GETDATE()
select @CurrentDateTime
8.
declare @RowReturn int
select @RowReturn=count(*)from bm
select  @RowReturn
9.
declare @ren int
if  exists(select zgda.E_id from zgda,gzqk where zgda.E_zhiwu='教师'
and gzqk.E_recsalary>150 and zgda.E_id=gzqk.E_id)
select @ren=COUNT(*) from zgda,gzqk where zgda.E_zhiwu='教师'
and gzqk.E_recsalary>150 and zgda.E_id=gzqk.E_id
else
select @ren=0
print @ren
10.
declare @max1 money,@min2 money
select @max1=MAX(E_recsalary),@min2=MIN(E_recsalary) from gzqk,bm,zgda where
gzqk.E_id=zgda.E_id and zgda.Dp_id=bm.Dp_id and bm.Dp_name='机电系' and zgda.E_zhiwu='教师'
select E_id,E_name from gzqk where E_recsalary=@max1 or E_recsalary=@min2
go
declare @avg1 money
select @avg1=(E_recsalary) from gzqk,bm,zgda where E_zhiwu='教师' and Dp_name='计算机系'
and gzqk.E_id=zgda.E_id and zgda.Dp_id=bm.Dp_id
if @avg1>1500
print  '工资水平较高!'
else
select  '工资历水平较低!',@avg
11.
alter table gzpk
add 工资水平 char(80) null
update gzpk set 工资水平=
case
when e_recsalary>2000 then '工资水平较高'
when e_recsalary>1500 and e_recsalary<2000 then '工资水平中等'
when e_recsalary<1000 then '工资水平较低'  
end
go
12.
declare @x int,@j int
set @x=0
set @j=1
xh:set @x=@x+1
set @j=@x*@j
if @x<10
goto xh
print '10!的值为'+ltrim(str(@j))
13.
DECLARE @x int, @sum int
SET @x=0
SET @sum=0
WHILE @x<100
BEGIN
  SET @x=@x+1
  SET @sum=@sum+@x
  if @sum>2000
    BREAK
END
PRINT '结果是:'+ltrim(str(@sum))
14.
DECLARE @x int, @sum int
SET @x=1
SET @sum=0
WHILE @x<50
  BEGIN
    SET @x=@x+1
     if @x%2=0
       CONTINUE
     else
       SET @sum=@sum+@x
  END
PRINT '1~50所有奇数之和是:'+ltrim(str(@sum+1))
15.
DECLARE @x int,@sum int
SET @x=0
SET @sum=1
WHILE @x<5
BEGIN
    SET @x=@x+1
    SET @sum=@x*@sum
if @x=6
break
else
continue
END
PRINT '5!='+ ltrim(str(@sum))
16.
declare @i int
select @i=0
while @i<5
begin
set @i=@i+1
print replicate ('* ',5)
end
17.
waitfor delay '00:00:05'
print '你好'
18.
declare @i int
select @i=0
while @i<3
begin
if (@i=2)
begin
print replicate ('*',1)+space(6)+replicate('*',1)
end
set @i=@i+2
print replicate ('*',8)
end
go
关键词:

    + 相关信息

    前端案例

    返回顶部 欢迎访问web记录!每一步的成长都是一种幸福,聪明的女孩擅长记录幸福!