SQL Server資料庫開發(2.T-Sql程式設計)
一,批處理(GO)
--可以使不在同一批處理中的sql語句相互之間不受影響
--把相互聯絡的放在同一批次,沒聯絡的放在不同批次
二,變數分類(區域性變數。全域性變數)
2.1區域性變數
先宣告變數
[email protected]
[email protected] char (10) --宣告一個長度為個字元的變數id
[email protected] int --宣告一個存放職員年齡的整型變數
然後變數賦值
[email protected] = 20
[email protected]變數名 = 值:用於從表中查詢資料並賦值
[email protected] = '11111'
在使用變數
列。 找王五學號前後的同學
declare @sid int
select @sid = stuid from StuInfo where stuname='王五'
print '王五的學號為:' + convert(varchar(20),@sid)
select * from StuInfo where [email protected] or [email protected]+1
區域性變數只在定義它的區域性輸入範圍內有效
2.2全域性變數
是以@@全域性變數名
由系統定義和維護,只讀不能改
全域性變數在整個SQL環境下都可以被訪問或呼叫
三,分支結構
IF-ELSE語句
--if(條件)
-- begin
-- T-SQL語句
-- end
--else if (條件)
-- begin
-- T-SQL語句
-- end
--else
-- begin
-- T-SQL語句
-- end
--1.查找出王五前後學生
declare @name varchar(10),@age int,@nameone varchar(10),@nametwo varchar(10)
select stuid from StuInfo where stuName='王五'
select @name=stuName from StuInfo where stuid=3
select @nameone=stuName from StuInfo where stuid=3+1
select @nametwo=stuName from StuInfo where stuid=3-1
select @name
select @nameone
select @nametwo
--2.比較男女平均成績的優異
declare @nan int,@nv int
select @nan=AVG(score) from StuInfo,StuMarks where StuInfo.stuid=StuMarks.stuid and stusex='男'
select @nv=AVG(score) from StuInfo,StuMarks where StuInfo.stuid=StuMarks.stuid and stusex='女'
if(@nan>@nv)
begin
print'男生成績優異'
end
else
print'女生成績優異'
--3.給分數分等級制度
select stuName,score,等級=
case
when score>=90 then 'A'
when score>=80 then 'B'
when score>=70 then 'C'
when score>=60 then 'D'
else 'E'
end
from StuInfo,StuMarks
where StuInfo.stuid=StuMarks.stuid and subject='SQL'
--4.把一個學生成績依次相加修改到70
declare @score1 int
select @score1=score from StuMarks where StuMarksno=6
while (@score1<70)
begin
set @[email protected]+1
update StuMarks set score = @score1 where StuMarksno=6
end
print @score1