理解MySQL資料型別
資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別:日期和時間型別,二進位制字元型別以及布林型別。
選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型別將會影響到RDBMS的效率與效能。所以,對RDBMS的資料型別選擇應給予足夠的重視。
這就是編寫本文的主要目的。表A將列舉了MySQL支援的絕大部分重要的資料型別,而MySQL是當前最為流行的免費RDBMS。文中還描述了何時與如何使用這些資料型別。這將有助於建立一個資料庫的合理設計。
表 A
資料型別 |
描述 |
位元組 |
推薦使用 |
SMALLINT |
整數,從-32000到 +32000範圍 |
2 |
儲存相對比較小的整數。 比如: 年紀,數量 |
INT |
整數,從-2000000000 到 +2000000000 範圍 |
4 |
儲存中等整數 例如: 距離 |
BIGINT |
不能用SMALLINT 或 INT描述的超大整數。 |
8 |
儲存超大的整數 例如: 科學/數學資料 |
FLOAT |
單精度浮點型資料 |
4 |
儲存小數資料 例如:測量,溫度 |
DOUBLE |
雙精度浮點型資料 |
8 |
需要雙精度儲存的小數資料 例如:科學資料 |
DECIMAL |
使用者自定義精度的浮點型資料 |
變數;取決於精度與長度 |
以特別高的精度儲存小數資料。 例如:貨幣數額,科學資料 |
CHAR |
固定長度的字串 |
特定字串長度(高達255字元) |
儲存通常包含預定義字串的變數 例如: 定期航線,國家或郵編 |
VARCHAR |
具有最大限制的可變長度的字串 |
變數; 1 + 實際字串長度 (高達 255 字元) |
儲存不同長度的字串值(高達一個特定的最大限度). 例如:名字,密碼,短文標籤 |
TEXT |
沒有最大長度限制的可變長度的字串 |
Variable; 2 +聽 actual string length |
儲存大型文字資料 例如: 新聞故事,產品描述 |
BLOB |
二進位制字串 |
變數;2 + 實際字串長度 |
儲存二進位制資料 例如:圖片,附件,二進位制文件 |
DATE |
以 yyyy-mm-dd格式的日期 |
3 |
儲存日期 例如:生日,產品滿期 |
TIME |
以 hh:mm:ss格式的時間 |
3 |
儲存時間或時間間隔 例如:報警聲,兩時間之間的間隔,任務開始/結束時間 |
DATETIME |
以yyyy-mm-ddhh:mm:ss格式結合日期和時間 |
8 |
儲存包含日期和時間的資料 例如:提醒的人,事件 |
TIMESTAMP |
以yyyy-mm-ddhh:mm:ss格式結合日期和時間 |
4 |
記錄即時時間 例如:事件提醒器,“最後進入”的時間標記 |
YEAR |
以 yyyy格式的年份 |
1 |
儲存年份 例如:畢業年,出生年 |
ENUM |
一組資料,使用者可從中選擇其中一個 |
1或 2個位元組 |
儲存字元屬性,只能從中選擇之一 例如:布林量選擇,如性別 |
SET |
一組資料,使用者可從中選擇其中0,1或更多。 |
從1到8位元組;取決於設定的大小 |
儲存字元屬性,可從中選擇多個字元的聯合。 例如:多選項選擇,比如業餘愛好和興趣。 |
對於一個完整的列表和詳細描述,可以檢視MySQL manual。你也可以閱讀文章Choosing the Right Type for a Column。
相關文章
- MySQL資料型別MySql資料型別
- [Mysql]資料型別MySql資料型別
- MYSQL 資料型別MySQL 資料型別
- MySQL基本資料型別MySql資料型別
- MySQL 的資料型別MySql資料型別
- mysql 資料型別TIMESTAMPMySQL 資料型別
- Mysql 資料型別之整數型別MySQL 資料型別
- MySQL基礎之----資料型別篇(常用資料型別)MySql資料型別
- 深入理解redis資料型別Redis資料型別
- MySQL 資料型別詳解MySQL 資料型別
- MySQL資料型別筆記MySql資料型別筆記
- mysql常見資料型別MySql資料型別
- MySQL資料型別DECIMAL用法MySql資料型別Decimal
- MySQL入門--資料型別MySql資料型別
- MySQL JSON資料型別操作MySqlJSON資料型別
- mysql 常用的資料型別MySql資料型別
- 詳解MySQL資料型別MySql資料型別
- MySQL入門系列:MySQL資料型別MySql資料型別
- Java 資料型別和 MySql 資料型別對應一覽表JavaMySQL 資料型別
- 深入理解 Java 基本資料型別Java資料型別
- 強型別語言變數和資料型別的理解變數資料型別
- 06. MySQL的資料型別MySql資料型別
- 【MySQL】資料型別的基本用法MySql資料型別
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- MYSQL資料庫型別與JAVA型別對應關係MySql資料庫型別Java
- 《MySQL 基礎篇》七:資料型別MySql資料型別
- MySQL資料型別操作(char與varchar)MySql資料型別
- python 與 Mysql 資料型別轉換PythonMySQL 資料型別
- MySQL中資料型別的驗證MySql資料型別
- mysql整數資料型別深入解析MySql資料型別
- sql學習(mysql)(1)資料型別MySql資料型別
- Mysql支援的資料型別(總結)MySql資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- mysql資料庫中decimal資料型別比較大小MySql資料庫Decimal資料型別
- MySQL 資料型別分類和選擇MySQL 資料型別
- 資料型別與函式索引-MySQL篇資料型別函式索引MySql
- 1-02:MySQL中的資料型別MySql資料型別
- 【MySQL】MySQL基礎(SQL語句、約束、資料型別)MySql資料型別