很簡單的東西,在官方手冊或是網路上也已經到處都有了相關資訊。
只是很多時候還是會忘記要查一下確切的內容,就記錄一下資訊吧!
數字型別 ( 整數 )
型別 | 含負數範圍 | 純正數範圍 | 數字數量 | 儲存空間 |
---|---|---|---|---|
TINYINT | -128 至 127 | 0 至 255 | 28 個 | 1 位元組 |
SMALLINT | -32,768 至 32,767 | 0 至 65,535 | 216 個 | 2 位元組 |
MEDIUMINT | -8,388,608 至 8,388,607 | 0 至 16,777,215 | 224 個 | 3 位元組 |
INT | -2,147,483,648 至 2,147,483,647 | 0 至 4,294,967,295 ( 約 40 億 ) | 232 個 | 4 位元組 |
BIGINT | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 | 0 至 18,446,744,073,709,551,615 ( 約 18 京 / 1千8百萬兆 ) | 264 個 | 8 位元組 |
數字型別 ( 小數 )
型別 | 負數範圍 | 正數範圍 | 精準度 | 儲存空間 |
---|---|---|---|---|
FLOAT(M,D) | -3.402823466E+38 至 -1.175494351E-38 | 1.175494351E-38 至 3.402823466E+38 | 浮點數 約小數點第 7 位 | 4 位元組 |
DOUBLE(M,D) | -1.7976931348623157E+308 至 -2.2250738585072014E-308 | 2.2250738585072014E-308 至 1.7976931348623157E+308 | 浮點數 約小數點第 15 位 | 8 位元組 |
DECIMAL(M,D) | 依 M 與 D 的數值決定 M 最大為 65 / D 最大為 38 | 無誤差 |
型別設定中的 M 代表總位數(不包含負號與小數點),D 代表小數點以後的位數。
FLOAT 型別於進行計算的時候實際上是以 DOUBLE 型別。
數字型別 ( 位元 )
型別 | 說明 |
---|---|
BIT(M) | 位元欄位 ( 二進位制 ) M 最大為 64 |
文字型別 ( 文字 )
型別 | 文字長度 |
---|---|
CHAR(M) | 255 字元 |
VARCHAR(M) | 65,532 位元組 |
TINYTEXT | 255 位元組 ( 28 – 1 ) |
TEXT | 65,535 位元組 ( 216 – 1 ) |
MEDIUMTEXT | 16,777,215 位元組 ( 224 – 1 ) |
LONGTEXT | 4,294,967,295 位元組 ( 232 – 1 ) |
文字長度有字元跟位元組兩種不同的單位,以目前常用的 UTF-8 字元編碼情況來說一個中文字是 3 位元組的長度。
CHAR 跟 VARCHAR 型別的參數 M 單位是字元。
文字型別 ( 二進位 )
型別 | 資料長度 |
---|---|
BINARY(M) | 255 位元組 |
VARBINARY(M) | 65,532 位元組 |
TINYBLOB | 255 位元組 ( 28 – 1 ) |
BLOB | 65,535 位元組 ( 216 – 1 ) |
MEDIUMBLOB | 16,777,215 位元組 ( 224 – 1 ) |
LONGBLOB | 4,294,967,295 位元組 ( 232 – 1 ) |
文字型別 ( 其他 )
型別 | 說明 | 儲存空間 |
---|---|---|
INET4 | IPv4 位址 | 4 位元組 |
INET6 | IPv6 位址 | 16 位元組 |
ENUM(‘value1’,’value2’…) | 於設定的項目清單中選擇其中一個項目為值,該清單最多可以有 65,535 個項目。 | 2 位元組 |
SET(‘value1’,’value2’…) | 於設定的項目清單中選擇其中數個項目為值,該清單最多可以有 64 個項目。 | 8 位元組 |
UUID | UUID 通用唯一標識碼 | 16 位元組 |
ENUM 與 SET 實際上儲存的內容為整數,所以項目清單的順序原則上是不可以調整的,其使用的儲存空間會因為設定的項目數量而減少。
日期時間型別
型別 | 說明 | 範圍 | 格式 | 儲存空間 |
---|---|---|---|---|
DATE | 日期 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 3 位元組 |
TIME(P) | 時間 | -838:59:59 至 838:59:59 | HH:MM:SS.ssssss | 3 位元組 |
DATETIME(P) | 日期時間 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS.ssssss | 8 位元組 |
TIMESTAMP(P) | 日期時間 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 2106-02-07 06:28:15 ( 11.5 以後版本 64 位元系統 ) 時間是以 UTC+0 時區為準 | YYYY-MM-DD HH:MM:SS.ssssss | 4 位元組 |
YEAR | 年 | 1901 至 2155 與 0000 | YYYY | 1 位元組 |
型別設定中的 P 代表微秒位數 ( 0 至 6 ),於有儲存微秒的情況下儲存空間最多會增加 3 位元組的使用量。
DATE 與 DATETIME 雖然文件說明的最小日期為 1000-01-01,不過實際測試類似 0099-01-01 這類以 0 開頭的年份是可以正常運作的。