mysql中定義數據字段的類型對數據庫的優化是很是重要的。 mysql數據類型大體分爲三類:數值、日期/時間、字符串(字符)類型。html
數值類型
MySQL支持全部標準SQL數值數據類型。 這些類型包括嚴格數值數據類型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數值數據類型(FLOAT、REAL和DOUBLE PRECISION)。 關鍵字INT是INTEGER的同義詞,關鍵字DEC是DECIMAL的同義詞。 BIT數據類型保存位字段值,而且支持MyISAM、MEMORY、InnoDB和BDB表。 做爲SQL標準的擴展,MySQL也支持整數類型TINYINT、MEDIUMINT和BIGINT。下面的表顯示了須要的每一個整數類型的存儲和範圍。 <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181106075419988-3078919.png" width="600" />mysql
日期和時間類型
表示時間值的日期和時間類型爲DATETIME、DATE、TIMESTAMP、TIME和YEAR。 每一個時間類型有一個有效值範圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值。 TIMESTAMP類型有專有的自動更新特性,將在後面描述。 <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181106080839639-1950622689.png" width="600" />sql
字符串類型
字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。該節描述了這些類型如何工做以及如何在查詢中使用這些類型。 <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181106080940471-1293477211.png" width="600" /> CHAR 和 VARCHAR 類型相似,但它們保存和檢索的方式不一樣。它們的最大長度和是否尾部空格被保留等方面也不一樣。在存儲或檢索過程當中不進行大小寫轉換。數據庫
BINARY 和 VARBINARY 相似於 CHAR 和 VARCHAR,不一樣的是它們包含二進制字符串而不要非二進制字符串。也就是說,它們包含字節字符串而不是字符字符串。這說明它們沒有字符集,而且排序和比較基於列值字節的數值值。優化
BLOB 是一個二進制大對象,能夠容納可變數量的數據。有 4 種 BLOB 類型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它們區別在於可容納存儲範圍不一樣。url
有 4 種 TEXT 類型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。對應的這 4 種 BLOB 類型,可存儲的最大長度不一樣,可根據實際狀況選擇。spa