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)
。 換句話說,BOOLEAN
和BOOL
是TINYINT(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
YYYY
或YY
格式的年值
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數據類型,可幫助您確定在創建表時應使用哪些數據類型。