在使用MySQL創(chuàng)建數據表時,經常會遇到如何為字段選擇合適的數據類型的問題,接下來我們一起分析字符串、數值、日期數據類型的選擇。
1、CHAR與VARCHAR
CHAR和VARCHAR類型,都用來存儲字符串,但它們被存儲和檢索的方式不同。它們的最大長度以及是否保留尾部空格也不同。CHAR屬于固定長度的字符類型,而VARCHAR屬于可變長度的字符類型。
下表將各種字符串值存儲到 CHAR(4)和VARCHAR(4) 列后的結果,從而說明了CHAR和VARCHAR之間的區(qū)別。并且在查詢數據時CHAR列會刪除尾部的空格。
CHAR與VARCHAR
建議:
在存儲定長字符時推薦使用CHAR,在存儲列是不定長時字符推薦使用合適長的VARCHAR。
在使用CHAR和VARCHAR時,后面跟的數字為滿足需要的最小值。
2、BLOB和TEXT類型
BLOB是一個二進制大對象,TEXT是一個的文本大對象。BLOB和 TEXT分別包括TINYBLOB,BLOB, MEDIUMBLOB,LONGBLOB和TINYTEXT,TEXT, MEDIUMTEXT,LONGTEXT四種不同的類型。它們之間的區(qū)別主要是存儲文本長度和存儲字節(jié)個數的不同。
建議:
對于存在TEXT或BLOB列的表,查詢數據是應避免查詢這些字段。
如果可以的話應該把BLOB或TEXT列分離到單獨的表中,以提升數據處理性能。
3、定點類型與浮點類型
定點類型,DECIMAL類型的存儲精確的數值數據。當對精確度要求很高時,例如金額數據,應使用定點類型。MySQL DECIMAL以二進制格式存儲值。
浮點類型,FLOAT和DOUBLE類型代表近似值數據。FLOAT單精度需要四個字節(jié)存儲,DOUBLE雙精度需要八個字節(jié)存儲。
4、日期和時間數據類型
MySQL提供常用的日期和時間數據類型有 DATE, TIME, DATETIME, TIMESTAMP,和 YEAR。每個時間類型都有一個有效值范圍,以及一個“ 零 ”值。
從下表可以看出每種類型的“ 零 ”值的格式。
“零”值的格式
-
字符串
+關注
關注
1文章
585瀏覽量
20601 -
MySQL
+關注
關注
1文章
829瀏覽量
26742
發(fā)布評論請先 登錄
相關推薦
評論