Data Type 資料型態
因為不同的 SQL Server 資料型態會有些許的差異,所以還是要以所使用的 SQL Server 為準。 一般來說,資料型態可以分成三種:Numeric、Character、Date & Time。其中空值不等於空格或空白,使用 NULL
表示空值。以下是一般常見的資料型態:
Text type
資料類型 | 描述 |
---|---|
CHAR(size) | 儲存固定長度的字串(包含字母、數字和特殊符號)。在括號中指定字串的長度,最多可達 255 個字串。 |
VARCHAR(size) | 儲存變動長度的字串(包含字母、數字和特殊符號)。在括號中指定字串的長度,最多可達 65535 個字串。Note:如果超過 65535 會轉成 TEXT 型態 |
TINYTEXT | 儲存變動最大長度 255 個字符的字串 |
TEXT | 儲存變動最大長度 65,535 個字符的字串 |
MEDIUMTEXT | 儲存變動最大長度 16,777,215 個字符的字串 |
LONGTEXT | 儲存變動最大長度 4,294,967,295 個字符的字串 |
TINYBLOB | 用於 BLOBs (Binary Large OBjects)。儲存最多 255 bytes 的資料 |
BLOB | 用於 BLOBs (Binary Large OBjects)。儲存最多 65,535 bytes 的資料 |
MEDIUMBLOB | 用於 BLOBs (Binary Large OBjects)。儲存最多 16,777,215 bytes 的資料 |
LONGBLOB | 用於 BLOBs (Binary Large OBjects)。儲存最多 4,294,967,295 bytes 的資料 |
BINARY(n) | 儲存固定長度的二進制字串 |
VARBINARY(n) | 儲存變動長度的二進制字串 |
ENUM | 允許輸入可能值得列表。可以在 ENUM 列表中列出最大 65,535 個值。如果列表中不存在插入的值,則會插入空值。Note:這些值會按照輸入的順序儲存。可以按照此格式輸入可能的值:ENUM('X','Y','Z') |
SET | 類似於 ENUM,但 SET 最多只能包含 64 個列表。但可以儲存一個以上的值。 |
Number type
這些類型擁有額外的屬性 UNSIGNED
。通常整數可以是負數或整數,如果添加了 UNSIGNED
屬性,則範圍將從 0 開始,而不包含負數。
資料類型 | 描述 |
---|---|
TINYINT(size) | 一般是 -128 ~ 127,如果是 UNSIGNED 則為 0 ~ 255。在括弧內設定最大值。 |
SMALLINT(size) | 一般是 -32768 ~ 32767,如果是 UNSIGNED 則為 0 ~ 65535。在括弧內設定最大值。 |
MEDIUMINT(size) | 一般是 -8388608 ~ 8388607,如果是 UNSIGNED 則為 0 ~ 16777215。在括弧內設定最大值。 |
INT(size) | 一般是 -2147483648 ~ 2147483647,如果是 UNSIGNED 則為 0 ~ 4294967295。在括弧內設定最大值。 |
BIGINT(size) | 一般是 -9223372036854775808 ~ 9223372036854775807,如果是 UNSIGNED 則為 0 ~ 18446744073709551615。在括弧內設定最大值。 |
FLOAT(size, d) | 帶有浮點數的小數值。在括弧內設定最大位數。在 d 參數中設定小數點最大到幾位。 |
DOUBLE(size, d) | 帶有浮點數的大數值。在括弧內設定最大位數。在 d 參數中設定小數點最大到幾位。 |
DECIMAL(size, d) | 將 DOUBLE 類型作為字串儲存的類型,可以設定固定的小數點。在括弧內設定最大位數。在 d 參數中設定小數點最大到幾位。 |
Date & Time type
即使 DATETIME
和 TIMESTAMP
回傳相同的格式,但是處理方式不同。在 INSERT
或 UPDATE
查詢中,TIMESTAMP
會自動將自己設定為當前的日期和時間。TIMESTAMP
也可以接受不同的格式,如: YYYYMMDDHHMMSS
、YYMMDDHHMMSS
、YYYYMMDD
或 YYMMDD
。
資料類型 | 描述 |
---|---|
DATE | 格式:YYYY-MM-DD。Note:支持的範圍 '1000-01-01' ~ '9999-12-31'。 |
DATETIME | 日期和時間的組合類型。格式:YYYY-MM-DD HH:MI:SS。Note:支持的範圍 '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'。 |
TIMESTAMPS | 時間戳。使用 Unix epoch ('1970-01-01 00:00:00' UTC) 的描述來儲存。 格式:YYYY-MM-DD HH:MI:SS。Note:支持的範圍 '1970-01-01 00:00:01' UTC ~ '2038-01-09 03:14:07' UTC |
TIME | 時間。格式:HH:MM:SS。Note:支持的範圍 '-838:59:59' ~ '838:59:59'。 |
YEAR | 2 位或 4 位格式的年。Note: 4 位格式允許的值的格式:1901 ~ 2155。2 位格式允許的值的格式:70 ~ 69,表示 1970 ~ 2069。 |
快速參考
Data type | Access | SQLServer | Oracle | MySQL | PostgreSQL |
---|---|---|---|---|---|
boolean | Yes/No | Bit | Byte | N/A | Boolean |
integer | Number (integer) | Int | Number | Int Integer | Int Integer |
float | Number (single) | Float Real | Number | Float | Numeric |
currency | Currency | Money | N/A | N/A | Money |
string (fixed) | N/A | Char | Char | Char | Char |
string (variable) | Text (<256) Memo (65k+) | Varchar | Varchar Varchar2 | Varchar | Varchar |
binary object | OLE Object Memo | Binary (fixed up to 8K) Varbinary (<8K) Image (<2GB) | Long Raw | Blob Text | Binary Varbinary |