理解MySQL資料型別

noter發表於2007-05-22

資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別:日期和時間型別,二進位制字元型別以及布林型別。

選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型別將會影響到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

 

相關文章