麗水市建設(shè)工程招標(biāo)網(wǎng)站百度官方客服
一. SQL Server和T-SQL的區(qū)別(?T-SQL 包含了 SQL)
SQL Server是結(jié)構(gòu)化查詢語言,是目前關(guān)系型數(shù)據(jù)庫管理系統(tǒng)中使用最廣泛的查詢語言
T-SQL是標(biāo)準(zhǔn)SQL語言的擴(kuò)展,是SQL Server的核心,在SQL的的基礎(chǔ)上添加了變量,運算符,函數(shù)和流程控制等,Microsoft SQL Server支持的語言
二.T-SQL語言的組成
數(shù)據(jù)定義語言(DDL:CREATE、DROP、ALTER)定義存儲數(shù)據(jù)的結(jié)構(gòu)和組織

2.數(shù)據(jù)操縱語言(DML:INSERT(插入)、UPDATE(修改)、DELETE(刪除))添加新數(shù)據(jù)、刪除舊數(shù)據(jù)和修改以前存儲的數(shù)據(jù)對數(shù)據(jù)庫進(jìn)行更新。

3.數(shù)據(jù)控制語言(DCL):檢索、添加和修改數(shù)據(jù)的能力,保護(hù)存儲的數(shù)據(jù)不被未授權(quán)的用戶所訪問

4.數(shù)據(jù)查詢語言(DQL),例如:SELECT語句
5.程序化SQL語句
語 句 | 功 能 |
declare | 定義查詢游標(biāo) |
explan | 描述查詢描述數(shù)據(jù)訪問計劃 |
open | 檢索查詢結(jié)果打開一個游標(biāo) |
fetch | 檢索一條查詢結(jié)果記錄 |
close | 關(guān)閉游標(biāo) |
prepare | 為動態(tài)執(zhí)行準(zhǔn)備SQL語句 |
execute | 動態(tài)執(zhí)行SQL語句 |
describe | 描述準(zhǔn)備好的查詢 |
三.T-SQL語句結(jié)構(gòu)
SELECT 子句 [INTO 子句]
FROM 子句
[WHERE 子句]
[GROUP BY 子句]
[HAVING 子句]
[ORDER BY 子句]
表達(dá)式
declare變量聲明語句
局部變量名必須以@開始開頭
declare @變量名 [as] 數(shù)據(jù)類型 = 值
2.select語句賦值
select @變量名 = 字段名 from xx
set賦值
declare @變量名 數(shù)據(jù)類型
set @變量名 = 值 / (表達(dá)式)
一條set賦值語句只能給一個變量賦值,而一條select語句可以給多個變量賦值
// 1
declare @num1 int = 1
// 2
declare @num2 int
select @num2 = 2 from emp where id = 'xx'
// 3
declare @num3 int
set @num3 = 3
3. 函數(shù)
數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
convert(數(shù)據(jù)類型(長度),表達(dá)式[,n])
4. 運算符
算術(shù)運算符:+、-、*、/、%(求余)
字符串運算符:+(連接)
比較運算符:=、>、>=、<、<=、<>(不等于)、!>(不大于)、!<(不小于)
邏輯運算符:NOT、AND、OR、ALL(所有)、ANY(或SOME,任意一個)、BETWEEN…AND、
EXISTS(存在)、IN(在范圍內(nèi))、LIKE(匹配)
按位運算符:&(位與)、|(位或)、^(按位異或)
一元運算符:+(正)、-(負(fù))、~(按位取反)
賦值運算符:=(等于)
5. 流程控制
BEGIN…END
語句用于將多個 Transact-SQL 語句組合為一個邏輯塊。當(dāng)流程控制語句必須執(zhí)行一個包含兩條或兩條以上的 T-SQL 語句的語句塊時,使用 BEGIN…END 語句。
declare @x int,@y int,@t int
set @x=1
set @y=2
begin
set @t=@x
set @x=@y
set @y=@t
end
print @x
print @y
IF
在 SQL Server 中為了控制程序的執(zhí)行方向,也會像其他語言(如C語言)有順序、選擇和循環(huán) 3 種控制語句,其中 IF 就屬于選擇判斷結(jié)構(gòu)
declare @x int
set @x = 8
if @x % 2 = 0
print '@x 偶數(shù)'
print 'end'
IF…ELSE
declare @x int,@y int
set @x = 8
set @y = -3
if @x > 0if @y > 0print '@x@y位于第一象限'elseprint '@x@y位于第四象限'
elseif @y > 0print '@X@y位于第二象限'elseprint '@x@y位于第三象限'
WHILE
WHILE 子句是 T-SQL 語句支持的循環(huán)結(jié)構(gòu)。在條件為真的情況下,WHILE 子句可以循環(huán)地執(zhí)行其后的一條 T-SQL 命令。如果想循環(huán)執(zhí)行一組命令,則需要配合 BEGIN…END 子句使用
declare @n int,@sum int
set @n = 1
set @sum = 0
while @n <= 10
beginset @sum = @sum + @nset @n = @n + 1
end
print @sum