簡介:在本教程中,您將瞭解 MySQL數據類型 以及如何在MySQL中設計數據庫時有效地使用它們。mysql
數據庫表包含多個具備特定數據類型的列,如數字或字符串。MySQL提供的數據類型不單單是數字或字符串。MySQL中的每種數據類型均可以經過如下特徵來肯定:正則表達式
- 它表明的那種價值。
- 佔用的空間以及值是固定長度仍是可變長度。
- 能夠索引或不索引數據類型的值。
- MySQL如何比較特定數據類型的值。
MySQL數字數據類型
在MySQL中,您能夠找到全部SQL標準數字類型,包括精確數字數據類型和近似數字數據類型,包括整數,定點和浮點。此外,MySQL還具備BIT
用於存儲位值的數據類型。除BIT
類型外,數字類型能夠是有符號或無符號的。數據庫
下表顯示了MySQL中數字類型的摘要:express
數字類型 | 描述 |
---|---|
TINYINT |
一個很是小的整數 |
SMALLINT |
一個小整數 |
MEDIUMINT |
一箇中等大小的整數 |
INT |
標準整數 |
BIGINT |
一個大整數 |
DECIMAL |
定點數 |
FLOAT |
單精度浮點數 |
DOUBLE |
雙精度浮點數 |
BIT |
有點田野 |
MySQL布爾數據類型
MySQL沒有內置 BOOLEAN
或BOOL
數據類型。爲了表示布爾值,MySQL使用最小的整數類型TINYINT(1)
。換句話說,是 BOOLEAN
和BOOL
的同義詞TINYINT(1).
json
MySQL String數據類型
在MySQL中,字符串能夠包含從純文本到二進制數據(如圖像或文件)的任何內容。經過使用LIKE
運算符, 正則表達式和全文搜索,能夠基於模式匹配來比較和搜索字符串。學習
下表顯示了MySQL中的字符串數據類型:spa
字符串類型 | 描述 |
---|---|
CHAR |
固定長度的非二進制(字符)字符串 |
VARCHAR |
可變長度的非二進制字符串 |
BINARY |
固定長度的二進制字符串 |
VARBINARY |
可變長度的二進制字符串 |
TINYBLOB |
一個很是小的BLOB(二進制大對象) |
BLOB |
一個小BLOB |
MEDIUMBLOB |
一箇中等大小的BLOB |
LONGBLOB |
一個大BLOB |
TINYTEXT |
一個很是小的非二進制字符串 |
TEXT |
一個小的非二進制字符串 |
MEDIUMTEXT |
中等大小的非二進制字符串 |
LONGTEXT |
一個很大的非二進制字符串 |
ENUM |
枚舉; 能夠爲每一個列值分配一個枚舉成員 |
SET |
一套; 能夠爲每一個列值分配零個或多個SET 成員 |
MySQL日期和時間數據類型
MySQL提供日期和時間類型以及日期和時間的組合。此外,MySQL支持 時間戳數據類型,用於跟蹤表中一行的更改。若是您只想存儲沒有日期和月份的年份,則可使用YEAR
數據類型。設計
下表說明了MySQL日期和時間數據類型:code
日期和時間類型 | 描述 |
---|---|
DATE |
CCYY-MM-DD 格式的日期值 |
TIME |
hh:mm:ss 格式的時間值 |
DATETIME |
CCYY-MM-DD hh:mm:ss 格式的日期和時間值 |
TIMESTAMP |
CCYY-MM-DD hh:mm:ss 格式化的時間戳值 |
YEAR |
年份CCYY 或YY 格式 |
MySQL空間數據類型
MySQL支持許多包含各類幾何和地理值的空間數據類型,以下表所示:
空間數據類型 | 描述 |
---|---|
GEOMETRY |
任何類型的空間值 |
POINT |
一個點(一對XY座標) |
LINESTRING |
曲線(一個或多個POINT 值) |
POLYGON |
一個多邊形 |
GEOMETRYCOLLECTION |
一組GEOMETRY 價值觀 |
MULTILINESTRING |
一組LINESTRING 價值觀 |
MULTIPOINT |
一組POINT 價值觀 |
MULTIPOLYGON |
一組POLYGON 價值觀 |
JSON數據類型
JSON
自5.7.8版本以來,MySQL支持本機數據類型,容許您更有效地存儲和管理JSON文檔。本機JSON數據類型提供JSON文檔和最佳存儲格式的自動驗證。
在本教程中,您學習了各類MySQL數據類型,這些類型可幫助您肯定在建立表時應將哪些數據類型用於列。