數據表是由多個列組成,創建表時必須明確每個列的數據類型,以下列舉SQL Server常見數據類型的使用規則,方便查閱。
整數類型#
int |
存儲範圍是-2,147,483,648到2,147,483,647之間的整數,主鍵列常設置此類型。 (每個數值佔用 4字節) |
smallint |
存儲範圍是-32,768 到 32,767 之間的整數,用來存儲限定在特定數值範圍內的數據。 (每個數值佔用 2 字節) |
tinyint |
存儲範圍是0到255 之間的整數,用來存儲有限數目的數值。 (每個數值佔用 1 字節) |
bigint |
存儲範圍是-9,223,372,036,854,775,808到 9,223,372,036,854,775,807之間的整數。 (每個數值佔用 8 字節) |
bit |
值只能是0或1,當輸入0以外的其他值時,系統均把它們當1看待。常用來表示真假、男女等二值選擇。 |
數值類型#
decimal(p,s) |
p 爲精度(有效位),表示可儲存數值的最大位數,小數點左右兩側都包括在內,默認最大位爲38 位;s爲小數位數,標識小數點後 面所能儲存的最大位數,默認最小位爲0位。如:123.45,則 p=5,s=2(內存大小取決於精度p) |
numeric(p,s) |
numeric 和 decimal 是功能相同的,同是用來保存精度可變的浮點型數據。 |
float |
浮點型,它是一種近似數值類型,float(n)可儲存1-53的可變精度浮點數值。 (內存大小取決於精度n) |
money |
貨幣型,能存儲從-9220 億到 9220 億之間的數據,精確到小數點後四位。 (每個數值佔用 8 字節) |
注:數值類型 = 整數類型 + 小數類型
日期時間#
datetime |
儲存有效日期範圍是1753/1/1~9999/12/31,可精準到3.33毫秒。(每個數值佔用 8 字節) |
smalldatetime |
儲存有效日期範圍是1900/1/1~2079/6/6,精確到分鐘。(每個數值佔用 4 字節) |
二進制類型#
image |
雖然類型名爲image, 但是並不意味着只能保存圖片二進制數據,實際上它可以保存任何二進制數據。 |
作者:Esofar
出處:https://www.cnblogs.com/esofar/p/4852765.html
字符串類型#
char(m) |
固定長度字符串,長度爲 m。 |
nchar(m) |
國際化固定長度字符串,長度爲 m。 |
varchar(m) |
可變長度字符串,最大長度爲m,且必須是一個介於 1 和 8,000 之間的數值。 |
nvarchar(m) |
國際化可變長度字符串,最大長度爲m, 且必須是一個介於 1 和 4,000 之間的數值。 |
text |
可變長度字符串,最大長度爲 231 - 1個字節。 |
ntext |
國際化可變長度字符串,最大長度爲 230 - 1個字符。 |
國際化就是通用與標準。char、varchar、text儲存的字符是基於ASCII編碼格式,對於其他編碼格式的字符可能會造成存儲問題。Unicode字符集(萬國碼)就是爲了解決字符集這種不兼容的問題而產生的,它所有的字符都用兩個字節表示,即英文字符也是用兩個字節表示。nchar、 nvarchar、ntext存儲的正是Unicode編碼格式的字符。所以一般來說,如果含有中文字符,用nchar、nvarchar、ntext, 如果只含英文字符,就用char、varchar、text。 |