註解
- -- 雙連字號:從雙連字號開始到該行結尾之間,全部都是註解的一部分。
- /*...*/ 斜線-星號字元配對:從開始註解配對/*到結束註解配對*/之間,全部都是為註解的一部分。
GO:代表批次的結尾。
識別碼
資料庫物件名稱又稱為 識別碼(identifiers)。SQL Server中每個物件都具有識別碼,例如,伺服器、資料庫與資料庫物件(資料表、資料行、索引、條件約束、規則、觸發程序、檢視、預存程序,函數...等)都有識別碼。
- 一般識別碼:@本機變數或參數,@@部分T-SQL功能名稱,#暫存資料表或預存程序,##全域暫存物件,且識別碼不可以是大小寫的T-SQL保留字,不允許內嵌空格或特殊字元。
- 分隔識別碼:在T-SQL陳述式中使用識別碼時,如果識別碼與上述規則不符,則必須使用雙引號("")或方括號([])加以分隔。
MSSQL2008預設 QUOTED_IDENTIFIER選項為ON,表示雙引號只能用來括識別碼,單引號則是用來括字串,且當字串當中有(')單引號時,需以兩個單引號('')表示。
SELECT * FROM "My Product Table"
WHERE "Product Name" = 'A''Box'
若QUOTED_IDENTIFIER為OFF,則雙引號不能用來分隔識別碼,需使用方括號([]),但可以使用單引號或雙引號來括住字元字串,如果使用雙引號,則不必再使用兩個單引號來表示嵌的單引號。
SET QUOTED_IDENTIFIER OFF
SELECT * FROM [My Table]
WHERE [Last Name] = "O'Brien"
運算子
算術運算子:+-*/ 比較運算子:= > < >= <= <>
邏輯運算子:大多用於WHERE子句,AND OR NOT BETWEEN EXISTS IN LIKE
指派運算子:= 字串串連運算子:+ 位元運算子:&(位元AND) (位元OR) ^(位元XOR)
一元運算子:+(正) -(負) ~(位元NOT)
資料類型
mssql2008新增資料類型:
date、Time、Datetimeoffset、varchar(Max)、Nvarchar(Max)
字串數字 --> 數字
字串日期 --> 日期 (自動轉型,反之則需用convert函數做轉換)
select convert (varchar,1)+'A'
declare @a datetime = '2009-10-20 08:10:50 PM'
select convert(varchar,@a,103)
貨幣資料:小數點第四位後,四捨五入。
Round函數
ROUND (數值運算式, 長度, 功能)
長度為正數指小數點右邊,為負數指小數點左邊;
功能預設是0,表示要四捨五入,若為非0則無條件捨去。
select ROUND(15.4562, 2) ans: 15.4600
select ROUND(15.4562,1) ans: 15.5000
select ROUND(1482.25,-2) ans: 1500.00
select ROUND(45.45, 1,1) ans: 45.40