Microsoft Access、MySQL 和 SQL Server 所使用的數(shù)據(jù)類型和范圍。


Microsoft Access 數(shù)據(jù)類型

數(shù)據(jù)類型描述存儲
Text用于文本或文本與數(shù)字的組合。最多 255 個字符。
MemoMemo 用于更大數(shù)量的文本。最多存儲 65,536 個字符。注釋:無法對 memo 字段進(jìn)行排序。不過它們是可搜索的。
Byte允許 0 到 255 的數(shù)字。1 字節(jié)
Integer允許介于 -32,768 與 32,767 之間的全部數(shù)字。2 字節(jié)
Long允許介于 -2,147,483,648 與 2,147,483,647 之間的全部數(shù)字。4 字節(jié)
Single單精度浮點。處理大多數(shù)小數(shù)。4 字節(jié)
Double雙精度浮點。處理大多數(shù)小數(shù)。8 字節(jié)
Currency用于貨幣。支持 15 位的元,外加 4 位小數(shù)。提示:您可以選擇使用哪個國家的貨幣。8 字節(jié)
AutoNumberAutoNumber 字段自動為每條記錄分配數(shù)字,通常從 1 開始。4 字節(jié)
Date/Time用于日期和時間8 字節(jié)
Yes/No邏輯字段,可以顯示為 Yes/No、True/False 或 On/Off。在代碼中,使用常量 True 和 False (等價于 1 和 0)。注釋:Yes/No 字段中不允許 Null 值1 比特
Ole Object可以存儲圖片、音頻、視頻或其他 BLOBs(Binary Large OBjects)。最多 1GB
Hyperlink包含指向其他文件的鏈接,包括網(wǎng)頁。
Lookup Wizard允許您創(chuàng)建一個可從下拉列表中進(jìn)行選擇的選項列表。4 字節(jié)


MySQL 數(shù)據(jù)類型

在 MySQL 中,有三種主要的類型:Text(文本)、Number(數(shù)字)和 Date/Time(日期/時間)類型。

Text 類型:

數(shù)據(jù)類型描述
CHAR(size)保存固定長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的長度。最多 255 個字符。
VARCHAR(size)保存可變長度的字符串(可包含字母、數(shù)字以及特殊字符)。在括號中指定字符串的最大長度。最多 255 個字符。注釋:如果值的長度大于 255,則被轉(zhuǎn)換為 TEXT 類型。
TINYTEXT存放最大長度為 255 個字符的字符串。
TEXT存放最大長度為 65,535 個字符的字符串。
BLOB用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字節(jié)的數(shù)據(jù)。
MEDIUMTEXT存放最大長度為 16,777,215 個字符的字符串。
MEDIUMBLOB用于 BLOBs(Binary Large OBjects)。存放最多 16,777,215 字節(jié)的數(shù)據(jù)。
LONGTEXT存放最大長度為 4,294,967,295 個字符的字符串。
LONGBLOB用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字節(jié)的數(shù)據(jù)。
ENUM(x,y,z,etc.)允許您輸入可能值的列表??梢栽?ENUM 列表中列出最大 65535 個值。如果列表中不存在插入的值,則插入空值。

注釋:這些值是按照您輸入的順序排序的。

可以按照此格式輸入可能的值: ENUM('X','Y','Z')

SET與 ENUM 類似,不同的是,SET 最多只能包含 64 個列表項且 SET 可存儲一個以上的選擇。

Number 類型:

數(shù)據(jù)類型描述
TINYINT(size)-128 到 127 常規(guī)。0 到 255 無符號*。在括號中規(guī)定最大位數(shù)。
SMALLINT(size)-32768 到 32767 常規(guī)。0 到 65535 無符號*。在括號中規(guī)定最大位數(shù)。
MEDIUMINT(size)-8388608 到 8388607 普通。0 to 16777215 無符號*。在括號中規(guī)定最大位數(shù)。
INT(size)-2147483648 到 2147483647 常規(guī)。0 到 4294967295 無符號*。在括號中規(guī)定最大位數(shù)。
BIGINT(size)-9223372036854775808 到 9223372036854775807 常規(guī)。0 到 18446744073709551615 無符號*。在括號中規(guī)定最大位數(shù)。
FLOAT(size,d)帶有浮動小數(shù)點的小數(shù)字。在 size 參數(shù)中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點右側(cè)的最大位數(shù)。
DOUBLE(size,d)帶有浮動小數(shù)點的大數(shù)字。在 size 參數(shù)中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點右側(cè)的最大位數(shù)。
DECIMAL(size,d)作為字符串存儲的 DOUBLE 類型,允許固定的小數(shù)點。在 size 參數(shù)中規(guī)定最大位數(shù)。在 d 參數(shù)中規(guī)定小數(shù)點右側(cè)的最大位數(shù)。

*這些整數(shù)類型擁有額外的選項 UNSIGNED。通常,整數(shù)可以是負(fù)數(shù)或正數(shù)。如果添加 UNSIGNED 屬性,那么范圍將從 0 開始,而不是某個負(fù)數(shù)。

Date 類型:

數(shù)據(jù)類型描述
DATE()日期。格式:YYYY-MM-DD

注釋:支持的范圍是從 '1000-01-01' 到 '9999-12-31'

DATETIME()*日期和時間的組合。格式:YYYY-MM-DD HH:MM:SS

注釋:支持的范圍是從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'

TIMESTAMP()*時間戳。TIMESTAMP 值使用 Unix 紀(jì)元('1970-01-01 00:00:00' UTC) 至今的秒數(shù)來存儲。格式:YYYY-MM-DD HH:MM:SS

注釋:支持的范圍是從 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC

TIME()時間。格式:HH:MM:SS

注釋:支持的范圍是從 '-838:59:59' 到 '838:59:59'

YEAR()2 位或 4 位格式的年。

注釋:4 位格式所允許的值:1901 到 2155。2 位格式所允許的值:70 到 69,表示從 1970 到 2069。

*即便 DATETIME 和 TIMESTAMP 返回相同的格式,它們的工作方式很不同。在 INSERT 或 UPDATE 查詢中,TIMESTAMP 自動把自身設(shè)置為當(dāng)前的日期和時間。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。


SQL Server 數(shù)據(jù)類型

String 類型:

數(shù)據(jù)類型描述存儲
char(n)固定長度的字符串。最多 8,000 個字符。Defined width
varchar(n)可變長度的字符串。最多 8,000 個字符。2 bytes + number of chars
varchar(max)可變長度的字符串。最多 1,073,741,824 個字符。2 bytes + number of chars
text可變長度的字符串。最多 2GB 文本數(shù)據(jù)。4 bytes + number of chars
nchar固定長度的 Unicode 字符串。最多 4,000 個字符。Defined width x 2
nvarchar可變長度的 Unicode 字符串。最多 4,000 個字符。
nvarchar(max)可變長度的 Unicode 字符串。最多 536,870,912 個字符。
ntext可變長度的 Unicode 字符串。最多 2GB 文本數(shù)據(jù)。
bit允許 0、1 或 NULL
binary(n)固定長度的二進(jìn)制字符串。最多 8,000 字節(jié)。
varbinary可變長度的二進(jìn)制字符串。最多 8,000 字節(jié)。
varbinary(max)可變長度的二進(jìn)制字符串。最多 2GB。
image可變長度的二進(jìn)制字符串。最多 2GB。

Number 類型:

數(shù)據(jù)類型描述存儲
tinyint允許從 0 到 255 的所有數(shù)字。1 字節(jié)
smallint允許介于 -32,768 與 32,767 的所有數(shù)字。2 字節(jié)
int允許介于 -2,147,483,648 與 2,147,483,647 的所有數(shù)字。4 字節(jié)
bigint允許介于 -9,223,372,036,854,775,808 與 9,223,372,036,854,775,807 之間的所有數(shù)字。8 字節(jié)
decimal(p,s)固定精度和比例的數(shù)字。

允許從 -10^38 +1 到 10^38 -1 之間的數(shù)字。

p 參數(shù)指示可以存儲的最大位數(shù)(小數(shù)點左側(cè)和右側(cè))。p 必須是 1 到 38 之間的值。默認(rèn)是 18。

s 參數(shù)指示小數(shù)點右側(cè)存儲的最大位數(shù)。s 必須是 0 到 p 之間的值。默認(rèn)是 0。

5-17 字節(jié)
numeric(p,s)固定精度和比例的數(shù)字。

允許從 -10^38 +1 到 10^38 -1 之間的數(shù)字。

p 參數(shù)指示可以存儲的最大位數(shù)(小數(shù)點左側(cè)和右側(cè))。p 必須是 1 到 38 之間的值。默認(rèn)是 18。

s 參數(shù)指示小數(shù)點右側(cè)存儲的最大位數(shù)。s 必須是 0 到 p 之間的值。默認(rèn)是 0。

5-17 字節(jié)
smallmoney介于 -214,748.3648 與 214,748.3647 之間的貨幣數(shù)據(jù)。4 字節(jié)
money介于 -922,337,203,685,477.5808 與 922,337,203,685,477.5807 之間的貨幣數(shù)據(jù)。8 字節(jié)
float(n)從 -1.79E + 308 到 1.79E + 308 的浮動精度數(shù)字?jǐn)?shù)據(jù)。

n 參數(shù)指示該字段保存 4 字節(jié)還是 8 字節(jié)。float(24) 保存 4 字節(jié),而 float(53) 保存 8 字節(jié)。n 的默認(rèn)值是 53。

4 或 8 字節(jié)
real從 -3.40E + 38 到 3.40E + 38 的浮動精度數(shù)字?jǐn)?shù)據(jù)。4 字節(jié)

Date 類型:

數(shù)據(jù)類型描述存儲
datetime從 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度為 3.33 毫秒。8 字節(jié)
datetime2從 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度為 100 納秒。6-8 字節(jié)
smalldatetime從 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度為 1 分鐘。4 字節(jié)
date僅存儲日期。從 0001 年 1 月 1 日 到 9999 年 12 月 31 日。3 bytes
time僅存儲時間。精度為 100 納秒。3-5 字節(jié)
datetimeoffset與 datetime2 相同,外加時區(qū)偏移。8-10 字節(jié)
timestamp存儲唯一的數(shù)字,每當(dāng)創(chuàng)建或修改某行時,該數(shù)字會更新。timestamp 值基于內(nèi)部時鐘,不對應(yīng)真實時間。每個表只能有一個 timestamp 變量。 

其他數(shù)據(jù)類型:

數(shù)據(jù)類型描述
sql_variant存儲最多 8,000 字節(jié)不同數(shù)據(jù)類型的數(shù)據(jù),除了 text、ntext 以及 timestamp。
uniqueidentifier存儲全局唯一標(biāo)識符 (GUID)。
xml存儲 XML 格式化數(shù)據(jù)。最多 2GB。
cursor存儲對用于數(shù)據(jù)庫操作的指針的引用。
table存儲結(jié)果集,供稍后處理。