一、T-SQL語言的分類 DDL-數據定義語言 create-創建 alter-修改 drop-刪除(針對對象) DML-數據操作語言 Insert-插入 update-更新 delete-刪除(針對對象的內容) DQL-數據查詢語言 select-查詢 DCL-數據控制語言 revoke-撤銷 d ...
一、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 |