常量,也稱為字面值或標(biāo)量值,是表示一個(gè)特定數(shù)據(jù)值的符號(hào)。常量的格式取決于它所表示的值的數(shù)據(jù)類型。
字符串常量
字符串常量括在單引號(hào)內(nèi)并包含字母數(shù)字字符(a-z、A-Z 和 0-9)以及特殊字符,如感嘆號(hào) (!)、at 符 (@) 和數(shù)字號(hào) (#)。將為字符串常量指派當(dāng)前數(shù)據(jù)庫的默認(rèn)排序規(guī)則,除非使用 COLLATE 子句為其指定了排序規(guī)則。用戶鍵入的字符串通過計(jì)算機(jī)的代碼頁計(jì)算,如有必要將被轉(zhuǎn)換為數(shù)據(jù)庫的默認(rèn)代碼頁。有關(guān)更多信息,請(qǐng)參見排序規(guī)則。
如果 QUOTED_IDENTIFIER 選項(xiàng)已將連接設(shè)置成 OFF,字符串也可以使用雙引號(hào)括起來,但是用于 Microsoft SQL Server™ 和 ODBC 驅(qū)動(dòng)程序的 Microsoft® OLE DB 提供程序自動(dòng)使用 SET QUOTED_IDENTIFIER ON。建議使用單引號(hào)。
如果單引號(hào)中的字符串包含一個(gè)嵌入的引號(hào),可以使用兩個(gè)單引號(hào)表示嵌入的單引號(hào)。對(duì)于嵌入在雙引號(hào)中的字符串則沒有必要這樣做。
字符串的示例為:
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
空字符串用中間沒有任何字符的兩個(gè)單引號(hào)表示。在 6.x 兼容模式中,空字符串被看作是一個(gè)空格。
字符串常量支持增強(qiáng)的排序規(guī)則。
Unicode 字符串
Unicode 字符串的格式與普通字符串相似,但它前面有一個(gè) N 標(biāo)識(shí)符(N 代表 SQL-92 標(biāo)準(zhǔn)中的國際語言 (National Language))。N 前綴必須是大寫字母。例如,'Michél' 是字符串常量而 N'Michél' 則是 Unicode 常量。Unicode 常量被解釋為 Unicode 數(shù)據(jù),并且不使用代碼頁進(jìn)行計(jì)算。Unicode 常量確實(shí)有排序規(guī)則,主要用于控制比較和區(qū)分大小寫。為 Unicode 常量指派當(dāng)前數(shù)據(jù)庫的默認(rèn)排序規(guī)則,除非使用 COLLATE 子句為其指定了排序規(guī)則。Unicode 數(shù)據(jù)中的每個(gè)字符都使用兩個(gè)字節(jié)進(jìn)行存儲(chǔ),而字符數(shù)據(jù)中的每個(gè)字符則都使用一個(gè)字節(jié)進(jìn)行存儲(chǔ)。有關(guān)更多信息,請(qǐng)參見使用 Unicode 數(shù)據(jù)。
Unicode 字符串常量支持增強(qiáng)的排序規(guī)則。
二進(jìn)制常量
二進(jìn)制常量具有前輟 0x 并且是十六進(jìn)制數(shù)字字符串。這些常量不使用引號(hào)。二進(jìn)制字符串的示例為:
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
bit 常量
bit 常量使用數(shù)字 0 或 1 表示,并且不使用引號(hào)。如果使用一個(gè)大于 1 的數(shù)字,它將被轉(zhuǎn)換為 1。
datetime 常量
datetime 常量使用特定格式的字符日期值表示,并被單引號(hào)括起來。有關(guān) datetime 常量格式的更多信息,請(qǐng)參見使用日期和時(shí)間數(shù)據(jù)。下面是一些日期常量的示例:
'April 15, 1998'
'15 April, 1998'
'980415'
'04/15/98'
下面是一些時(shí)間常量的示例:
'14:30:24'
'04:24 PM'
integer 常量
integer 常量由沒有用引號(hào)括起來且不含小數(shù)點(diǎn)的一串?dāng)?shù)字表示。integer 常量必須是整數(shù),不能包含小數(shù)點(diǎn)。下面是一些 integer 常量的示例:
1894
2
decimal 常量
decimal 常量由沒有用引號(hào)括起來且包含小數(shù)點(diǎn)的一串?dāng)?shù)字表示。下面是一些 decimal 常量的示例:
1894.1204
2.0
float 和 real 常量
float 和 real 常量使用科學(xué)記數(shù)法表示。下面是一些 float 或 real 值的示例:
101.5E5
0.5E-2
money 常量
money 常量表示為以可選小數(shù)點(diǎn)和可選貨幣符號(hào)作為前綴的一串?dāng)?shù)字。這些常量不使用引號(hào)。下面是一些 money 常量的示例:
$12
$542023.14
uniqueidentifier 常量
uniqueidentifier 常量是表示全局唯一標(biāo)識(shí)符 (GUID) 值的字符串??梢允褂米址蚨M(jìn)制字符串格式指定。這兩個(gè)示例指定相同的 GUID:
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
若要指明一個(gè)數(shù)是正數(shù)還是負(fù)數(shù),應(yīng)該對(duì)數(shù)字常量應(yīng)用 + 或 - 的一元運(yùn)算符。這將創(chuàng)建一個(gè)代表有符號(hào)數(shù)字值的表達(dá)式。如果沒有應(yīng)用 + 或 - 符號(hào),數(shù)字常量默認(rèn)為正數(shù)。
+145345234
-2147483648
+145345234.2234
-2147483648.10
+123E-3
-12E5
-$45.56
+$423456.99
SQL Server 2000 支持字符和 Unicode 字符串常量,這些常量支持增強(qiáng)的排序規(guī)則。
若要使用增強(qiáng)的排序規(guī)則,請(qǐng)使用 COLLATE 子句。
相關(guān)文章