在使用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ā)布評論請先 登錄
相關推薦
如何選擇合適的PLD型號
如何選擇合適的量水堰計型號與規(guī)格
![如何<b class='flag-5'>選擇</b><b class='flag-5'>合適</b>的量水堰計型號與規(guī)格](https://file1.elecfans.com/web3/M00/06/60/wKgZPGeKDj6AGwwJAAAodNqilW4747.png)
適用于MySQL的ODBC驅動程序:可與多個第三方工具兼容的數據連接器
MySQL數據庫的安裝
![<b class='flag-5'>MySQL</b><b class='flag-5'>數據</b>庫的安裝](https://file1.elecfans.com/web3/M00/05/E2/wKgZPGeF2XWAe83fAAAW9lhgvGk652.jpg)
請問ADS1299使用Test Signals ,獲取到的數據類型是什么?
選擇數據采集器時需要考慮的因素
西門子博途新數據類型之:SINT(8位整數)
![西門子博途新<b class='flag-5'>數據類型</b>之:SINT(8位整數)](https://file1.elecfans.com/web1/M00/F4/A4/wKgaoWcuwKSAVv28AABkgk4XsXY477.png)
如何選擇合適的數據光端機型號?
AIC23采集到的數據是應該用什么數據類型來接收?int還是unsigned int?
labview數據類型的取值范圍是多少
常見的遙感數據類型有哪些
技術干貨驛站 ▏深入理解C語言:基本數據類型和變量
![技術干貨驛站 ▏深入理解C語言:基本<b class='flag-5'>數據類型</b>和變量](https://file1.elecfans.com/web2/M00/FC/CD/wKgZomaWI5uASgBaAABuQHdMO4I302.png)
ESP32-S3是否支持修改控制端點數據類型?
C語言數據類型有哪些
![C語言<b class='flag-5'>數據類型</b>有哪些](https://file1.elecfans.com/web2/M00/C5/16/wKgZomX6UKqAb6q4AABHS7gAoYk070.png)
評論