常量,也稱為文字值或標量值,是表示一個特定資料值的符號。常量的格式取決於它所表示的值的資料類型。
-
字串常量
-
字串常量括在單引號內並包含字母數字字元(a-z、A-Z 和 0-9)以及特殊字元,如驚嘆號 (!)、at 符 (@) 和數字型大小
(#)。將為字串常量分配當前資料庫的預設定序,除非使用 COLLATE
子句為其指定了定序。使用者鍵入的字串通過電腦的字碼頁計算,如有必要,將被轉換為資料庫的預設字碼頁。
如果已為某個串連將 QUOTED_IDENTIFIER 選項設定成 OFF,則字串也可以使用雙引號括起來,但 Microsoft SQL
本機用戶端提供者和 ODBC 驅動程式將自動使用 SET QUOTED_IDENTIFIER ON。我們建議使用單引號。
如果單引號中的字串包含一個嵌入的引號,可以使用兩個單引號表示嵌入的單引號。對於嵌入在雙引號中的字串則沒有必要這樣做。
以下是字串的樣本:
|
複製代碼 |
'Cincinnati' 'O''Brien' 'Process X is 50% complete.' 'The level for job_id: %d should be between %d and %d.' "O'Brien" |
Null 字元串用中間沒有任何字元的兩個單引號表示。在 6.x 相容模式中,Null 字元串被看作是一個空格。
字串常量支援增強定序。
-
Unicode 字串
-
Unicode 字串的格式與一般字元串相似,但它前面有一個 N 標識符(N 代表 SQL-92 標準中的地區語言)。N
首碼必須是大寫字母。例如,'Michél' 是字串常量而 N'Michél' 則是 Unicode 常量。Unicode 常量被解釋為 Unicode
資料,並且不使用字碼頁進行計算。Unicode 常量有定序。該定序主要用於控制比較和如何區分大小寫。為 Unicode
常量分配當前資料庫的預設定序,除非使用 COLLATE 子句為其指定了定序。對於字元資料,儲存 Unicode 資料時每個字元使用 2
個位元組,而不是每個字元 1 個位元組。有關詳細資料,請參閱。
Unicode 字串常量支援增強定序。
-
二進位常量
-
二進位常量具有前輟 0x 並且是十六進位數字字串。這些常量不使用引號括起。
下面是二進位字串的樣本:
|
複製代碼 |
0xAE 0x12Ef 0x69048AEFDD010E 0x (empty binary string) |
-
bit 常量
-
bit 常量使用數字 0 或 1 表示,並且不括在引號中。如果使用一個大於 1 的數字,則該數字將轉換為 1。
-
datetime 常量
-
datetime 常量使用特定格式的字元日期值來表示,並被單引號括起來。有關 datetime 常量格式的詳細資料,請參閱“使用日期和時間資料”。
下面是 datetime 常量的樣本:
|
複製代碼 |
'April 15, 1998' '15 April, 1998' '980415' '04/15/98' |
下面是時間常量的樣本:
|
複製代碼 |
'14:30:24' '04:24 PM' |
-
integer 常量
-
integer 常量以沒有用引號括起來並且不包含小數點的數字字串來表示。integer 常量必須全部為數字;它們不能包含小數。
下面是 integer 常量的樣本:
-
decimal 常量
-
decimal 常量由沒有用引號括起來並且包含小數點的數字字串來表示。
下面是 decimal 常量的樣本:
-
float 和 real 常量
-
float 和 real 常量使用科學記號標記法來表示。
下面是 float 或 real 值的樣本:
-
money 常量
-
money 常量以首碼為可選的小數點和可選的貨幣符號的數字字串來表示。money 常量不使用引號括起。
SQL Server 2005 不強制採用任何種類的分組規則,例如在代表貨幣的字串中每隔三個數字插入一個逗號 (,)。
| 注意: |
| 在指定的 money 文字中,將忽略任何位置的逗號。 |
下面是 money 常量的樣本:
-
uniqueidentifier 常量
-
uniqueidentifier 常量是表示 GUID 的字串。可以使用字元或二進位字串格式指定。
以下樣本都指定相同的 GUID:
|
複製代碼 |
'6F9619FF-8B86-D011-B42D-00C04FC964FF' 0xff19966f868b11d0b42d00c04fc964ff |
指定負數和正數
若要指示一個數是正數還是負數,請對數值常量應用 + 或 - 一元運算子。這將建立一個表示有符號數字值的運算式。如果沒有應用 + 或 -
一元運算子,數值常量將使用正數。
- 有符號 integer 運算式:
|
複製代碼 |
+145345234 -2147483648 |
- 有符號 decimal 運算式:
|
複製代碼 |
+145345234.2234 -2147483648.10 |
- 有符號 float 運算式:
- 有符號 money 運算式:
增強定序
SQL Server 所支援的字元和 Unicode 字串常量也支援增強定序。有關詳細資料,請參閱 COLLATE (Transact-SQL)
子句。