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沒有內置的 BOOLEAN 或 BOOL 數據類型。所以要表示布爾值,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數據類型,可幫助您確定在創建表時應使用哪些數據類型。