以下各節(jié)描述了SQL Server支持的數(shù)據(jù)類型。
Microsoft SQL Server支持的數(shù)據(jù)類型可以分為三個主要類別:字符串,數(shù)字和日期/時間數(shù)據(jù)類型。
字符串數(shù)據(jù)類型通常用于存儲名稱,地址,描述或任何包含字母和數(shù)字的值,包括二進制數(shù)據(jù),例如圖像或音頻文件。
數(shù)據(jù)類型 | 描述 |
---|---|
char(n) | 存儲定長字符串。最大長度為8,000個字符。 |
varchar(n) | 存儲長度可變的字符串。最大長度為8,000個字符。 |
varchar(max) | 存儲長度可變的字符串。此處,max表示最大存儲大小為2 GB。 |
text | 存儲長度可變的字符串。最大存儲大小為2 GB。 |
nchar | 存儲固定長度的Unicode字符串。最大長度為4,000個字符。 |
nvarchar | 存儲可變長度的Unicode字符串。最大長度為4,000個字符。 |
nvarchar(max) | 存儲可變長度的Unicode字符串。此處,max表示最大存儲大小為2 GB。 |
ntext | 存儲可變長度的Unicode字符串。最大存儲大小為2 GB。 |
binary(n) | 存儲固定長度的二進制數(shù)據(jù)。最大存儲大小為8,000字節(jié)。 |
varbinary(n) | 存儲可變長度的二進制數(shù)據(jù)。最大存儲大小為8,000字節(jié)。 |
varbinary(max) | 存儲可變長度的二進制數(shù)據(jù)。此處,max表示最大存儲大小為2 GB。 |
image | 存儲可變長度的二進制數(shù)據(jù)。最大存儲大小為8,000字節(jié)。 |
數(shù)值數(shù)據(jù)類型通常用于存儲價格,薪水等數(shù)據(jù)。
數(shù)據(jù)類型 | 描述 |
---|---|
bit | 允許您存儲值1、0或NULL。 |
tinyint | 存儲0到255之間的整數(shù)值。 |
smallint | 存儲從-32,768到32,767范圍內(nèi)的整數(shù)值。 |
int | 存儲從-2,147,483,648到2,147,483,647范圍內(nèi)的整數(shù)值。 |
bigint | 存儲從-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整數(shù)值。 |
decimal(p,s) | 存儲固定的精度和小數(shù)位數(shù)。有效值為10 ^38 +1到10 |
numeric(p,s) | numeric數(shù)據(jù)類型功能上等同于decimal。 |
smallmoney | 允許您精確存儲貨幣值或貨幣值,范圍為-214,748.3648至214,748.3647。 |
money | 允許您精確存儲貨幣值或貨幣值,范圍為-922,337,203,685,477.5808至922,337,203,685,477.5807。 |
float(n) | 存儲浮點數(shù)值。有效值為-1.79E + 308至-2.23E-308、0和2.23E-308至1.79E + 308。 |
real | 存儲浮點數(shù)值。有效值為-3.40E + 38至-1.18E-38、0和1.18E-38至3.40E + 38。 |
在聲明一個decimal或numeric列時,可以指定精度和小數(shù)位數(shù),比如decimal(p,s)或numeric(p,s),其中p或精度表示可以存儲的最大位數(shù),包括小數(shù)點的左邊和右邊。精度必須是從1到38的值。默認的精度是18。
而s或scale表示可以存儲在小數(shù)點右邊的最大位數(shù)。從p減去該數(shù)字,以確定小數(shù)點左邊的最大位數(shù)。 小數(shù)位數(shù)必須為0到p之間的值。 默認比例為0。
例如,price decimal(6,2)列可以存儲具有六位數(shù)字和兩個小數(shù)的任何值,即-9999.99到9999.99之間的值。
日期和時間數(shù)據(jù)類型通常用于存儲數(shù)據(jù),例如出生日期,雇用日期,在表內(nèi)創(chuàng)建或更新記錄時的日期和時間等。
數(shù)據(jù)類型 | 描述 |
---|---|
date | 存儲日期值,范圍為0001-01-01(1月1日,1月)至 9999-12-31(9999年12月31日)。 |
time | 存儲一天中的時間,精度為100納秒。有效值為00:00:00.0000000到23:59:59.9999999。 |
datetime | 存儲組合的日期和時間值,精度為3.33毫秒。的有效日期范圍datetime是從1753-01-01(1753年1月1日)到9999-12-31(9999年12月31日)。 |
datetime2 | datetime2是datetime數(shù)據(jù)類型的擴展,它具有更大的日期范圍。datetime2的有效日期范圍是從0001-01-01 (January 1, 1)到9999-12-31 (December 31, 9999)。 |
smalldatetime | 以1分鐘的精度存儲組合的日期和時間值。有效日期范圍smalldatetime是從1900-01-01(1900年1月1日)到 2079-06-06(2079年6月6日)。 |
datetimeoffset | 與datetime2添加時區(qū)偏移量相同。默認格式為YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm]。時區(qū)偏移的有效范圍是-14:00到+14:00。 |
timestamp | 在SQL Server中,時間戳是rowversion數(shù)據(jù)類型的同義詞,該類型在數(shù)據(jù)庫中自動生成唯一的二進制數(shù)。 rowversion通常用于版本標記表行 |
注意:每次在表中插入或修改具有rowversion列的行時,數(shù)據(jù)庫增量rowversion值都會插入到rowversion列中。 一個表只能有一個rowversion列。