SQLServer2008 Transact_SQL语言基础实例
生活随笔
收集整理的這篇文章主要介紹了
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 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的SQLServer2008 Transact_SQL语言基础实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat启动报Error liste
- 下一篇: 【JEECG技术文档】JEECG在线聊天