八、SQLServer數據類型

bigint、int、smallint、tinyint

使用整數數據的精確數字數據類型。 若要節省數據庫空間,請使用能夠可靠包含所有可能值的最小數
據類型。 例如,對於一個人的年齡,tinyint 就足夠了,因爲沒人活到 255 歲以上。 但對於建築物的
年齡,tinyint 就不再適應,因爲建築物的年齡可能超過 255 年。

bit

SQL Server 數據庫引擎優化位列的存儲。 如果表中的 bit 列爲 8 列或更少,則這些列作爲 1 個字節
存儲。 如果 bit 列爲 9 到 16 列,則這些列作爲 2 個字節存儲,以此類推。字符串值 TRUE 和 FALSE
可轉換爲 bit 值:TRUE 將轉換爲 1,FALSE 將轉換爲 0。
性別 bool值

numeric和decimal

decimal[ (p[ ,s] )] 和 numeric[ (p[ ,s] )]
固定精度和小數位數。 使用最大精度時,有效值的範圍爲 - 10^38 +1 到 10^38 - 1。 decimal 的
ISO 同義詞爲 dec 和 dec(p,s) 。 numeric 在功能上完全等同於 decimal 。高精度,小數點後面最多
可以有38位
金額---精度很高,小數點後面可能有很多位;後面的小數點精度可以達到38位

smallmoney和money

小數點存儲都爲4位,如果出現第5位,根據第5位做四捨五入。

float和real

這兩個類型保存的是一個近似值。保存的數據,可能和真是要保存的數據有細微的偏差。
注意:數據篩選的時候,只適合> >= < <= 不適合去等於
float [ (n ) ] 其中 n 爲用於存儲 float 數值尾數的位數(以科學記數法表示),因此可以確定精度和存
儲大小 。 如果指定了 n,則它必須是介於 1 和 53 之間的某個值 。 n 的默認值爲 53 。

 

date類型 

date類型可用於需要一個日期值而不需要時間部分時。

datetime 說明

可用於需要同時包含日期和時間信息的值。

time 

datetime2

smalldatetime

datetimeoffset 

char和varchar

char [ ( n ) ] 固定大小字符串數據 。 n 用於定義字符串大小(以字節爲單位),並且它必須爲 1 到
8,000 之間的值 。 對於單字節編碼字符集(如拉丁文),存儲大小爲 n 個字節,並且可存儲的字符數
也爲 n。 對於多字節編碼字符集,存儲大小仍爲 n 個字節,但可存儲的字符數可能小於 n。 char 的
ISO 同義詞是 character 。 有關字符集的詳細信息,請參閱單字節和多字節字符集。
varchar [ ( n | max ) ] 可變大小字符串數據 。 使用 n 定義字符串大小(以字節爲單位),可以是介
於 1 和 8,000 之間的值;或使用 max 指明列約束大小上限爲最大存儲 2^31-1 個字節 (2GB)。 對於
單字節編碼字符集(如拉丁文),存儲大小爲 n + 2 個字節,並且可存儲的字符數也爲 n。 對於多字
節編碼字符集,存儲大小仍爲 n + 2 個字節,但可存儲的字符數可能小於 n 。 varchar 的 ISO 同義詞
是 charvarying 或 charactervarying

nchar 和 nvarchar

nchar [ ( n ) ]
無論存儲中文還是英文、數字等,每個字符都是佔用兩個字節。
固定大小字符串數據。 n 用於定義字符串大小(以雙字節爲單位),並且它必須爲 1 到 4,000 之間的
值。 存儲大小爲 n 字節的兩倍。 對於 UCS-2 編碼,存儲大小爲 n 個字節的兩倍,並且可存儲的字
符數也爲 n。 對於 UTF-16 編碼,存儲大小仍爲 n 個字節的兩倍,但可存儲的字符數可能小於 n,因
爲補充字符使用兩個雙字節(也稱爲代理項對)。 nchar 的 ISO 同義詞是 national char 和 national
character。

nvarchar [ ( n | max ) ]

可變大小字符串數據。 n 用於定義字符串大小(以雙字節爲單位),並且它可能爲 1 到 4,000 之間的
值。 max 指示最大存儲大小是 2^30-1 個字符 (2 GB)。 存儲大小爲 n 字節的兩倍 + 2 個字節。 對
於 UCS-2 編碼,存儲大小爲 n 個字節的兩倍 + 2 個字節,並且可存儲的字符數也爲 n。 對於 UTF-
16 編碼,存儲大小仍爲 n 個字節的兩倍 + 2 個字節,但可存儲的字符數可能小於 n,因爲補充字符使
用兩個雙字節(也稱爲代理項對)。 nvarchar 的 ISO 同義詞是 national char varying 和 national
character varying。數據類型
何時使用...
binary
列數據項的大小一致。
varbinary
列數據項的大小差異相當大。
varbinary(max)
列數據條目超出 8,000 字節。

ntext、text和images

ntext
長度可變的 Unicode 數據,字符串最大長度爲 2^30 - 1 (1,073,741,823) 個字節。 存儲大小是所輸
入字符串長度的兩倍(以字節爲單位)。
text
服務器代碼頁中長度可變的非 Unicode 數據,字符串最大長度爲 2^31-1 (2,147,483,647) 個字節。
當服務器代碼頁使用雙字節字符時,存儲仍是 2,147,483,647 字節。 根據字符串,存儲大小可能小於
2,147,483,647 字節。
image
長度可變的二進制數據,從 0 到 2^31-1 (2,147,483,647) 個字節。

Binary和varbinary

參數
binary [ ( n ) ] 長度爲 n 字節的固定長度二進制數據,其中 n 是從 1 到 8,000 的值。 存儲大小爲 n
字節。
varbinary [ ( n | max) ] 可變長度二進制數據。 n 的取值範圍爲 1 至 8,000。 max 指示最大存儲大小
是 2^31-1 個字節。 存儲大小爲所輸入數據的實際長度 + 2 個字節。 所輸入數據的長度可以是 0 字
節。
備註:
如果沒有在數據定義或變量聲明語句中指定 n ,則默認長度爲 1。 如果沒有使用 CAST 函數指定
n ,則默認長度爲 30。

uniqueidentifier 說明

備註
uniqueidentifier 數據類型的列或局部變量可通過以下方式初始化爲一個值 :---全球唯一的一個值
通過使用 NEWID 或 NEWSEQUENTIALID 函數。
通過從 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式的字符串常量進行轉換,其中,每個 x 都是
0-9 或 a-f 範圍內的十六進制數字。 例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 爲有
效的 uniqueidentifier 值 。比較運算符可與 uniqueidentifier 值一起使用 。 不過,排序不是通過比較兩個值的位模式來實現的。
可針對 uniqueidentifier 值執行的運算只有比較運算(<>、<、>、<=、>=)以及檢查是否爲
NULL(IS NULL 和 IS NOT NULL)。 不能使用其他算術運算符。 除 IDENTITY 之外的所有列約束和
屬性均可對 uniqueidentifier 數據類型使用 。
具有更新訂閱的合併複製和事務複製使用 uniqueidentifier 列來確保在表的多個副本中唯一地標識行。

轉換uniqueidentifier數據

出於從字符表達式轉換的目的將 uniqueidentifier 類型視爲字符類型,因此在轉換到字符類型時要遵循
截斷規則 。 也即,如果將字符表達式轉換爲不同大小的字符數據類型,則對於新數據類型而言過長的
值將被截斷。 請參閱“示例”部分。

XML 說明

參數
CONTENT
將 xml 實例限制爲格式正確的 XML 片段。 XML 數據的頂層可包含多個零或多個元素。 還允許在頂
層使用文本節點。
此選項爲默認行爲。
DOCUMENT
將 xml 實例限制爲格式正確的 XML 片段。 XML 數據必須且只能有一個根元素。 不允許在頂層使用
文本節點。
xml_schema_collection
XML 架構集合的名稱。 若要創建類型化的 xml 列或變量,可選擇指定 XML 架構集合名稱。 有關類
型化和非類型化 XML 的詳細信息。
備註
xml 數據類型實例所佔據的存儲空間大小不能超過 2 GB。
CONTENT 和 DOCUMENT 方面僅應用於類型化的 XML
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章