1.基本結(jié)構(gòu)——批
批是一組SQL語句集合醇滥,一個批以結(jié)束符GO而終結(jié)黎比。批中的語句被一次性提交給SQL SERVER,將這些語句編譯成一個執(zhí)行單元鸳玩,在執(zhí)行時全部執(zhí)行焰手。
批的基本規(guī)則:
(1)所有create語句應(yīng)當(dāng)單獨構(gòu)成一個批
(2)使用alter table語句修改表結(jié)構(gòu)后,不能在同一個批中使用新定義的列
(3)excute語句為批中第一語句時怀喉,可以省略excute
(4)go與sql語句不同行
{ begin transaction
{T-SQL語句[...n]
go
}[...n]
{commit | rollback}
}[...n]
2.注釋
(1) -- 單行注釋
(2) /*...*/ 多行注釋
(注:多行注釋不能跨越批次處理书妻,整個注釋必須包含在一個批處理內(nèi))
3.變量
- 全局變量
-
局部變量(僅在定義它的批處理內(nèi)有效)
declare {@變量 變量類型} [,...n]
變量賦值
select {@變量=<表達(dá)式>}[,...n]
set @變量=<表達(dá)式>
一條set語句只能為一個變量賦值,而一條select語句可以為多個變量賦值
4.運算符和表達(dá)式
- 算術(shù)運算符
+加,-減,*乘,%求余,/除 - 位運算符
&按位與躲履,|按位或见间,~按位取反,^按位異或 - 連接運算符
”+“兩個字符串連接 - 比較運算符
大于 > 工猜, >= 米诉, 小于< , <=
不等于<> 篷帅, != 史侣, !> , !<
[NOT] BETWEEN AND
[NOT] IN
[NOT] LIKE
IS [NOT] NULL
EXISTS一元運算
普通比較運算符+ANY/ALL - 邏輯運算符
AND,OR,NOT
返回邏輯值真魏身、假
5.函數(shù)
1. 數(shù)學(xué)函數(shù)
ABS()絕對值 惊橱,SIN ,ASIN 箭昵,COS 税朴,ACOS ,EXP
POWER (numeric_expression,y)表達(dá)式的y次冪
SQRT()平方根
SQUARE()平方
…
2. 字符串函數(shù)
ASCII 求字符的ASCII值
CHAR 求整數(shù)對應(yīng)的字符
STR float數(shù)值轉(zhuǎn)字符串
LEFT(char_expression,count) 左側(cè)截取字串
RIGHT(char_expression,count) 右側(cè)截取字串
SUBSTRing(char,start,length) 取串內(nèi)子串
LEN 求串長
LTRIM 去前導(dǎo)空格
RTRIM 去尾隨空格
REPLACE(c1,c2,c3) 用字符串3替換字符串1中的字串2
…
3. 時間日期函數(shù)
GETDATE 取系統(tǒng)時間家制,日期
DATEADD 加一段時間
DATEDIFF 求兩個時間之間的差
4.轉(zhuǎn)換函數(shù)
CAST( <表達(dá)式> as <目標(biāo)數(shù)據(jù)類型> [(<長度>)] )
CONVERT(varchar(60)目標(biāo)數(shù)據(jù)類型,getdate()表達(dá)式,126格式)
6.流程控制
1. 塊語句
begin
T-SQL語句[....n]
end
2. 條件語句
if<條件表達(dá)式>
語句1
else
語句2
3. CASE語句
(1)簡單CASE語句
case <輸入表達(dá)式>
when <當(dāng)表達(dá)式1> then <結(jié)果表達(dá)式1>
when <當(dāng)表達(dá)式2> then <結(jié)果表達(dá)式2>
................................
when <當(dāng)表達(dá)式n> then <結(jié)果表達(dá)式n>
[else <結(jié)果表達(dá)式n+1> ]
end
(2)CASE搜索語句
case
when <條件表達(dá)式1> then <結(jié)果表達(dá)式1>
when <<條件表達(dá)式2> then <結(jié)果表達(dá)式2>
................................
when <<條件表達(dá)式n> then <結(jié)果表達(dá)式n>
[else <結(jié)果表達(dá)式n+1> ]
end
4. 循環(huán)語句
while <條件表達(dá)式>
begin
T-SQL語句[...n]
[break]
[continue]
end
5. 等待語句
waitfor {delay<'時間'> |time <'時間'> |errorexit |processexit |mirrorexit }
6. GOTO語句
goto <標(biāo)號>