本文突出介紹了mysql支援的很多重要的資料型別,並介紹如何使用。
資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別:日期和時間型別,二進位制字元型別以及布林型別。
選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型別將會影響到rdbms的效率與效能。所以,對rdbms的資料型別選擇應給予足夠的重視。
這就是編寫本文的主要目的。表a將列舉了mysql支援的絕大部分重要的資料型別,而mysql是當前最為流行的免費rdbms。文中還描述了何時與如何使用這些資料型別。這將有助於建立乙個資料庫的合理設計。
資料型別
描述位元組
推薦使用
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中的datetime與timestamp比較
理解MySQL資料型別 避免資料庫設計出現混亂
理解mysql資料型別避免資料庫設計出現混亂 本文突出介紹了mysql支援的很多重要的資料型別,並介紹如何使用。資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別 日期和時間型別,二進位制字元型別以及布林型別。選擇資料型別與資料...
理解MySQL資料型別 避免資料庫設計出現混亂
資料型別 描述位元組 推薦使用 smallint 整數,從 32000到 32000範圍 2儲存相對比較小的整數。比如 年紀,數量 int整數,從 2000000000 到 2000000000 範圍 4儲存中等整數 例如 距離 bigint 不能用smallint 或 int描述的超大整數。8儲存...
理解MySQL資料型別
資料型別 描述位元組 推薦使用 smallint 整數,從 32000到 32000範圍 2儲存相對比較小的整數。比如 年紀,數量 int整數,從 2000000000 到 2000000000 範圍 4儲存中等整數 例如 距離 bigint 不能用smallint 或 int描述的超大整數。8儲存...