SQLServer2008 Transact_SQL语言基础实例



--1. 打开数据库教学管理,查询计算机系的老师。
--declare @x varchar (10)
--set @x ='计算机系'
--select * from 教师表  where 系别 =@x 
--2.使用全局变量查看SQL Server的版本和当前所使用的SQL Server服务器名称。
--select @@VERSION
--3.声明三个局部变量SNAME,BIRTH,SCORE,并对它们赋值,然后将值显示出来。
--declare @SNAME int
--declare @BIRTH int
--declare @SCORE int
--set @SNAME=1 print @SNAME
--set @SCORE =2 print @SCORE
--set @SCORE =3 print @SCORE
 
--4.声明一个局部变量,把教师表的教师编号为‘95011’的教师姓名赋给局部变量,并打印出来。
--declare @a varchar (10)
--set  @a =(select 姓名 from 教师表  where 教师编号 ='95011')
--print @a


--5.编写程序判断李俊熙是否已经在学生表中存在,如果存在,打印“李俊熙的记录在数据库中已经存在”,反之向学生表中插入记录(2010071207,李俊熙,男,20,2010-9-21,党员,福建)。
/*
declare @x varchar(20)
select @x=姓名 from 学生表 where 姓名 ='李俊熙' 
if(@x is not null)
print '李俊熙的记录在数据库中已经存在'
else
insert into 学生表 (学生编号,姓名 ,性别 ,年龄,入校日期,政治面貌,籍贯)
values ('2010071207','李俊熙','男',20,'2010-9-21','党员','福建')
*/
--二、程序控制语句
--6. 编写一段程序,要求打印出2010071101同学选修105课的成绩,和相应的等级。注:90分以上优秀,80-89良好,70-79中等,60-69及格,60以下不及格。
/*
select 学生编号,课程编号,成绩,
(
case 
when 成绩>=90 then '优秀'
when 成绩>=80and 成绩<90 then '良好'
when 成绩>=70and 成绩<80 then '中等'
when   成绩>=60and 成绩<70 then '及格'
when 成绩<60 then '不及格' 
end)等级
from 选课成绩表 where 学生编号='2010071101'and 课程编号='105'




--第二种
declare @x int 
select @x=成绩 from 选课成绩表 where 学生编号='2010071101'and 课程编号='105'
if(@x>=90)
print cast(@x as char(3))+'优秀'--输出结果一定要统一,同意要转型
else
if(@x>=80and @x<90)
 print cast(@x as char(3)) +'良好'
else
if(@x>=70and @x<80)
print cast(@x as char(3))+'中等'
else
if(@x>=60and @x<70)
print cast(@x as char(3))+'及格'
else
print cast(@x as char(3))+'不及格' 
*/


--7. 编写一段程序,要求不用count函数,计算每类职称的教师人数。并且打印出来,格式如“教授人数:X人”。
/*
declare @x int ,@y int, @z int ,@w int 
set @x=0
set @y=0
set @z=0
set @w=0
declare @c char(10)
declare cj cursor for  
select 职称 from 教师表
--2.打开游标
open cj
fetch next from cj into @c
while @@FETCH_STATUS = 0
begin
if(@c='教授') set @x=@x+1
if(@c='副教授') set @y=@y+1
if(@c='讲师') set @z=@z+1
if(@c='助教') set @w=@w+1
fetch next from cj into @c
end
print '教授人数:' +cast(@x as char(3))+'人'
print '副教授人数:'+cast(@y as char(3))+'人'
print '讲师人数:' +cast(@z as char(3))+'人'
print '助教人数:' +cast(@x as char(3))+'人'
close cj
deallocate cj




第二种方法
select 职称 ,
sum(case
when 职称='教授' then 1
when 职称='副教授' then 1
when 职称='讲师' then 1
when 职称='助教' then 1
else 0
end)as 人数
from 教师表
group by 职称 




*/


--8. 编写程序计算1+2+...+100的值,打印出来。
/*
declare @x int
declare @sum int
set @sum=0 
set @x=0
while (@x<=100)
begin
set @sum=@sum+@x
set @x=@x+1
end
print @sum
*/
--9. 编写程序要求循环十次产生不同随机数,并打印出来,格式为“第X次产生随机数:X”。
/*
declare @x int
declare @y int
set @x=1
while (@x<=10)
begin
set @y=round(RAND()*100,0) 
print '第'+ cast(@x as char(3))+'次产生随机数:'+ cast(@y as char(3))
set @x=@x+1
end
*/
--三、函数
--10. 查看当天的日期,并格式化输出。
--select DATEPART(YY,GETDATE()) 年,DATEPART(MM,GETDATE())月,DATEPART(dd,GETDATE())日,
--DATEPART(Hh,GETDATE())时,DATEPART(MI ,GETDATE())分,DATEPART(SS,GETDATE())秒
--11.球半径2 米,高3米的圆柱体体积。
--select PI()*2*2*3
--12. 求字符串‘abcdefg’的长度。
--select LEN('abcdefg')
--13. 显示学生表籍贯的前两个字。
--select LEFT(籍贯,2)
--from 学生表
--14. 取字符串‘abcdefg’的第2个到第5个字母。
--select SUBSTRING('abcdefg',2,5)
--15. 计算2011年9月11日到今天以及多少天了。
--select DATEDIFF(DD,'2011-09-11',GETDATE())
--16. 创建一个计算圆柱体体积的函数。
create function dbo.v(@r float,@h float)
returns float
as
begin
return(PI()*@r*@r*@h)
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值