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數據類型,可幫助您確定在創建表時應使用哪些數據類型。


上一篇: MySQL重命名表 下一篇: MySQL技巧