一、T-SQL語言的分類
DDL-數據定義語言
create-創建
alter-修改
drop-刪除(針對對象)
DML-數據操作語言
Insert-插入
update-更新
delete-刪除(針對對象的內容)
DQL-數據查詢語言
select-查詢
DCL-數據控制語言
revoke-撤銷
deny-拒絕
grant-同意、授權
二、語法元素
批處理元素
go-語法結束標志,執行前面的語句或一個完成的處理過程
exec-調用執行存儲過程
注釋
行注釋:--
塊注釋:/* */
三、數據類型
整數型
Bigint:8個字節,范圍:-263~263-1,精度:19
Integer:4個字節,范圍:-231~231-1,精度:10
Smallint:2個字節,范圍:-215~215-1,精度:5
Tinyint:1個字節,范圍0~255,精度:3
精確數值型
Numeric(5,3) -共五位數,其中三位是小數
Decimal(15,5)-共15位數,其中五位是小數(默認精度為18)
Decimal(p,s)-p為精度,s為小數位數
精度為1-9,長度為5個字節
精度為10-19,長度為9個字節
精度為20-28,長度為13個字節
精度為29-38,長度為17個字節
注:Numeric與Decimal在是同義詞,可互換使用,建議使用Decimal
近似數值型
real等價於float(24)
float[(n)]其中n為存儲float數值尾數的尾數(以科學記數法表示),因此可以確定精度和存儲大小。如果指定了n,則它必須是介於1和53之間的某個值。n的默認值為53。
n 值 | 精度 | 存儲大小 |
---|---|---|
1-24 | 7 位數 | 4 個字節 |
25-53 | 15 位數 | 8 字節 |
貨幣型
Money 范圍:-263~263-1,精確小數后4位,占8個字節
Smallmoney 范圍:-231-231-1,精確小數后4位,占4個字節
位型
bit 表示0或1
SQL Server 數據庫引擎 可優化 bit 列的存儲。 如果表中的 bit 列為 8 列或更少,則這些列作為 1 個字節存儲。 如果 bit 列為 9 到 16 列,則這些列作為 2 個字節存儲,以此類推。
字符串值 TRUE 和 FALSE 可轉換為 bit 值:TRUE 轉換為 1,FALSE 轉換為 0。
轉換為 bit 會將任何非零值升為 1。
日期時間型
date 范圍:0001-01-01 到 9999-12-31 字符長度:10位 存儲大小:固定3個字節
datetime 日期范圍:1753 年 1 月 1 日到 9999 年 12 月 31 日 時間范圍:00:00:00 到 23:59:59.997 字符長度:最低 19 位到最高 23 位 存儲大小:8 字節
smalldatetime 日期范圍:1900-01-01 到 2079-06-06 時間范圍:00:00:00 到 23:59:59(2017-07-07 23:59:59 將舍入為2017-07-08 00:00:00) 字符長度:最高19位 存儲大小:固定4個字節 精度:一分鍾
time 范圍:00:00:00.0000000 到 23:59:59.9999999 存儲大小:固定5個字節 精度:100納秒 字符長度:最小 8 位 (hh:mm:ss),最大 16 位 (hh:mm:ss.nnnnnnn)
字符型
char 固定長度(以空格填補多余長度)
varchar 可變長度
Nchar “Nuicode”固定長度
Nvarchar “Nuicode”可變長度
“Nuicode”國際標准碼:雙字節模式 如:一個漢字=兩個字節
文本型
text 一個字符占用一個字節,數據的最大長度為231-1(2,147,483,647)個字符
Ntext 一個字符占用兩個字節,數據的最大長度為230-1(1,073,741,823)個字符
使用數據類型的指導原則
1.如果列的長度可變,使用某個可變數據類型
2.要為以后數據的拓展預留空間
3.精確數值型,建議使用decimal
4.如果存儲量超過了8000字節,使用text.如果存儲量小於8000字節,使用char,可能時,最好使用varchar,原因在於它比text和image有更強的功能
5.對於貨幣類型來說,使用money數據類型
6.不要把float和real數據類型作為主鍵,原因在於這些數據類型的值是不精確的,它們不適於在比較中使用
四、標識符
標准標識符
標准標識符可以包含1到128位字符,包括字母,符號(_、@或#)及數字。標准標識符中不允許有空格。
限定標識符([ ]/””)
當對象名字包含空格時
當保留關鍵字被用作對象名或對象部分的名字時
標識符的命名規則
名字盡量短
盡量使用有意義的名字
使用簡單的清晰的命名習慣
使用能區分出對象類型的標識符,尤其是視圖和存儲過程的名字
保持對象名和用戶名的唯一性
特殊標識符
# 局部臨時變量
## 臨時變量
@ 局部變量
@@ 全局變量
五、變量
變量是可以賦值的SQL語句元素。
在T-sql中,你可以使用局部變量。
用戶可以使用decare語句來定義一個局部變量,通過使用set和select語句為這個局部變量賦值,局部變量名前必須帶有@.如果一個變量前有兩個@@符號,那么它將被作為函數處理。
例:定義一個字符型變量,賦值為"customer",並顯示變量內容
declare @tempName varchar(20)
set @tempName='customer'
select @tempName
六、運算符
概述
運算符是進行數學計算、字符操作及字段、常量和變量比較的符號。
運算符的種類
算述運算符:+,-,*,/,%
比較運算符:=,>,<,>=,<=,<>
字符運算符:+
邏輯運算符:and,or,not用於連接where 子句中的查詢條件
運算符的優先級
運算符 | 優先級 |
+(正)-(負)~(按位取反) | 1 |
*、/ | 2 |
+(加),-(減) | 3 |
=,>,<,>=,<=,<> | 4 |
Not | 5 |
And | 6 |
all,between,in,like,or | 7 |
=(賦值) | 8 |