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