在本教學中,您將了解MySQL資料型別以及如何在MySQL中設計資料庫時有效地使用它們。
資料庫表包含具有特定資料型別(如數位或字串)的多個列。 MySQL提供更多的資料型別,而不僅僅是數位或字串。 MySQL中的每種資料型別都可以通過以下特徵來確定:
資料型別 | 指定值和範圍 |
---|---|
char |
String(0~255) |
varchar |
String(0~255) |
tinytext |
String(0~255) |
text |
String(0~65536) |
blob |
String(0~65536) |
mediumtext |
String(0~16777215) |
mediumblob |
String(0~16777215) |
longblob |
String(0~4294967295) |
longtext |
String(0~4294967295) |
tinyint |
Integer(-128~127) |
smallint |
Integer(-32768~32767) |
mediumint |
Integer(-8388608~8388607) |
int |
Integer(-214847668~214847667) |
bigint |
Integer(-9223372036854775808~9223372036854775807) |
float |
decimal(精確到23位小數) |
double |
decimal(24~54位元小數) |
decimal |
將double 轉儲為字串形式 |
date |
YYYY-MM-DD |
datetime |
YYYY-MM-DD HH:MM:SS |
timestamp |
YYYYMMDDHHMMSS |
time |
HH:MM:SS |
enum |
選項值之一 |
set |
選項值子集 |
boolean |
tinyint(1) |
在MySQL中,您可以找到所有SQL標準數位型別,包括精確數位資料型別和近似數位資料型別,包括整數,定點和浮點數。 此外,MySQL還具有用於儲存位值的BIT資料型別。數位型別可以是有符號或無符號,但BIT
型別除外。
下表顯示了MySQL中數位型別的總結:
數位型別 | 描述 |
---|---|
TINYINT | 一個很小的整數 |
SMALLINT | 一個小的整數 |
MEDIUMINT | 一個中等大小的整數 |
INT | 一個標準整數 |
BIGINT | 一個大整數 |
DECIMAL | 定點數 |
FLOAT |
單精度浮點數 |
DOUBLE |
雙精度浮點數 |
BIT | 一個位元組欄位 |
MySQL沒有內建的 BOOLEAN 或 BOOL 資料型別。所以要表示布林值,MySQL使用最小的整數型別,也就是TINYINT(1)
。 換句話說,BOOLEAN
和BOOL
是TINYINT(1)
的同義詞。
在MySQL中,字串可以容納從純文字到二進位制資料(如影象或檔案)的任何內容。可以通過使用LIKE運算子,正則表達式和全文搜尋,根據模式匹配來比較和搜尋字串。
下表顯示了MySQL中的字串資料型別:
字串型別 | 描述 |
---|---|
char | 固定長度的非二進位制(字元)字串 |
varchar | 可變長度的非二進位制字串 |
BINARY |
一個固定長度的二進位制字串 |
VARBINARY |
一個可變長度的二進位制字串 |
TINYBLOB |
一個非常小的BLOB(二進位制大物件) |
BLOB |
一個小的BLOB(二進位制大物件) |
MEDIUMBLOB |
一個中等大小的BLOB(二進位制大物件) |
LONGBLOB |
一個大的BLOB(二進位制大物件) |
TINYTEXT | 一個非常小的非二進位制字串 |
TEXT | 一個小的非二進位制字串 |
MEDIUMTEXT | 一個中等大小的非二進位制字串 |
LONGTEXT | 一個很大的非二進位制字串 |
ENUM | 列舉; 每個列值可以被分配一個列舉成員 |
SET |
集合; 每個列值可以分配零個或多個SET 成員 |
MySQL提供日期和時間的型別以及日期和時間的組合。 此外,MySQL還支援時間戳資料型別,用於跟蹤表的一行中的更改。如果只想儲存沒有日期和月份的年份資料,則可以使用YEAR
資料型別。
下表說明了MySQL日期和時間資料型別:
字串型別 | 描述 |
---|---|
DATE | YYYY-MM-DD 格式的日期值 |
TIME | hh:mm:ss 格式的時間值 |
DATETIME | YYYY-MM-DD hh:mm:ss 格式的日期和時間值 |
TIMESTAMP | YYYY-MM-DD hh:mm:ss 格式的時間戳記值 |
YEAR |
YYYY 或YY 格式的年值 |
MySQL支援許多包含各種幾何和地理值的空間資料型別,如下表所示:
字串型別 | 描述 |
---|---|
GEOMETRY | 任何型別的空間值 |
POINT | 一個點(一對X-Y坐標) |
LINESTRING | 曲線(一個或多個POINT 值) |
POLYGON | 多邊形 |
GEOMETRYCOLLECTION | GEOMETRY 值的集合 |
MULTILINESTRING | LINESTRING 值的集合 |
MULTIPOINT | POINT 值的集合 |
MULTIPOLYGON | POLYGON 值的集合 |
MySQL 5.7.8
版本支援原生JSON資料型別,可以更有效地儲存和管理JSON文件。 本機JSON資料型別提供JSON文件的自動驗證和最佳儲存格式。
在本教學中,您學習了各種MySQL資料型別,可幫助您確定在建立表時應使用哪些資料型別。