MySQL資料型別


在本教學中,您將了解MySQL資料型別以及如何在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數值資料型別

在MySQL中,您可以找到所有SQL標準數位型別,包括精確數位資料型別和近似數位資料型別,包括整數,定點和浮點數。 此外,MySQL還具有用於儲存位值的BIT資料型別。數位型別可以是有符號或無符號,但BIT型別除外。

下表顯示了MySQL中數位型別的總結:

數位型別 描述
TINYINT 一個很小的整數
SMALLINT 一個小的整數
MEDIUMINT 一個中等大小的整數
INT 一個標準整數
BIGINT 一個大整數
DECIMAL 定點數
FLOAT 單精度浮點數
DOUBLE 雙精度浮點數
BIT 一個位元組欄位

MySQL布林資料型別

MySQL沒有內建的 BOOLEANBOOL 資料型別。所以要表示布林值,MySQL使用最小的整數型別,也就是TINYINT(1)。 換句話說,BOOLEANBOOLTINYINT(1)的同義詞。

MySQL字串資料型別

在MySQL中,字串可以容納從純文字到二進位制資料(如影象或檔案)的任何內容。可以通過使用LIKE運算子,正則表達式和全文搜尋,根據模式匹配來比較和搜尋字串。

下表顯示了MySQL中的字串資料型別:

字串型別 描述
char 固定長度的非二進位制(字元)字串
varchar 可變長度的非二進位制字串
BINARY 一個固定長度的二進位制字串
VARBINARY 一個可變長度的二進位制字串
TINYBLOB 一個非常小的BLOB(二進位制大物件)
BLOB 一個小的BLOB(二進位制大物件)
MEDIUMBLOB 一個中等大小的BLOB(二進位制大物件)
LONGBLOB 一個大的BLOB(二進位制大物件)
TINYTEXT 一個非常小的非二進位制字串
TEXT 一個小的非二進位制字串
MEDIUMTEXT 一個中等大小的非二進位制字串
LONGTEXT 一個很大的非二進位制字串
ENUM 列舉; 每個列值可以被分配一個列舉成員
SET 集合; 每個列值可以分配零個或多個SET成員

MySQL日期和時間資料型別

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 YYYYYY格式的年值

MySQL空間資料型別

MySQL支援許多包含各種幾何和地理值的空間資料型別,如下表所示:

字串型別 描述
GEOMETRY 任何型別的空間值
POINT 一個點(一對X-Y坐標)
LINESTRING 曲線(一個或多個POINT值)
POLYGON 多邊形
GEOMETRYCOLLECTION GEOMETRY值的集合
MULTILINESTRING LINESTRING值的集合
MULTIPOINT POINT值的集合
MULTIPOLYGON POLYGON值的集合

JSON資料型別

MySQL 5.7.8版本支援原生JSON資料型別,可以更有效地儲存和管理JSON文件。 本機JSON資料型別提供JSON文件的自動驗證和最佳儲存格式。

在本教學中,您學習了各種MySQL資料型別,可幫助您確定在建立表時應使用哪些資料型別。