理解mysql資料型別避免資料庫設計出現混亂
本文突出介紹了mysql支援的很多重要的資料型別,並介紹如何使用。
資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別:日期和時間型別,二進位制字元型別以及布林型別。
選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型別將會影響到
rdbms
的效率與效能。所以,對
rdbms
的資料型別選擇應給予足夠的重視。
這就是編寫本文的主要目的。表
a將列舉了
mysql
支援的絕大部分重要的資料型別,而
mysql
是當前最為流行的免費
rdbms
。文中還描述了何時與如何使用這些資料型別。這將有助於建立乙個資料庫的合理設計。
表a
資料型別
描述
位元組
推薦使用
tinyint
非常小的整數
有符號值:
-128
到127
無符號值:0到
2551
smallint
整數,有符號值:
-32768
到32767
無符號值:0到
65535
2
儲存相對比較小的整數。
比如:
年紀,數量
數值前可放乙個負號
「-」以表示負值。
int
整數,有符號值:
-2147683648
到2147683647
(- 231
到231- 1
)無符號值:0到
4294967295(0
到232 - 1)4
儲存中等整數
例如:
距離bigint
不能用smallint
或int
描述的超大整數。
8
儲存超大的整數
例如: 科學/
數學資料
float
單精度浮點型資料
4
儲存小數資料例如:
測量,溫度
double
雙精度浮點型資料
8
需要雙精度儲存的小數資料例如:
科學資料
decimal
使用者自定義精度的浮點型資料變數;
取決於精度與長度
以特別高的精度儲存小數資料。例如:
貨幣數額,科學資料
char
固定長度的字串
特定字串長度(高達
255字元
)
儲存通常包含預定義字串的變數
例如:
定期航線,國家或郵編
varchar
具有最大限制的可變長度的字串
變數; 1 +
實際字串長度(高達
255 字元)
儲存不同長度的字串值
(高達乙個特定的最大限度
). 例如:
名字,密碼,短文標籤
tinytext
非常小的文字串
最大尺寸2
8- 1
位元組text
沒有最大長度限制的可變長度的字串
最大尺寸2
16- 1
位元組variable; 2 +
聽actual string length
儲存大型文字資料
例如:
新聞故事,產品描述
blob
二進位制字串
最大尺寸2
16- 1
位元組變數;
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
一組資料,使用者可從中選擇其中乙個
最大尺寸65535
個成員1或2
個位元組儲存字元屬性,只能從中選擇之一例如:
布林量選擇,如性別
set
一組資料,使用者可從中選擇其中0,
1或更多。
最大尺寸64
個成員從1到
8位元組;取決於設定的大小
儲存字元屬性,可從中選擇多個字元的聯合。例如:
多選項選擇,比如業餘愛好和興趣。
對於乙個完整的列表和詳細描述,可以檢視
mysql manual
。你也可以閱讀文章
choosing the right type for a column
。
理解MySQL資料型別 避免資料庫設計出現混亂
資料型別 描述位元組 推薦使用 smallint 整數,從 32000到 32000範圍 2儲存相對比較小的整數。比如 年紀,數量 int整數,從 2000000000 到 2000000000 範圍 4儲存中等整數 例如 距離 bigint 不能用smallint 或 int描述的超大整數。8儲存...
理解MySQL資料型別 避免資料庫設計出現混亂
本文突出介紹了mysql支援的很多重要的資料型別,並介紹如何使用。資料庫儲存中的資料型別與大小各異。有些地方只儲存數字型別,有些只儲存文字型別,有些二者而兼之。而很多資料庫支援各種專用型別 日期和時間型別,二進位制字元型別以及布林型別。選擇資料型別與資料相匹配是資料庫設計中最為重要的部分,因為這種型...
理解MySQL資料型別
資料型別 描述位元組 推薦使用 smallint 整數,從 32000到 32000範圍 2儲存相對比較小的整數。比如 年紀,數量 int整數,從 2000000000 到 2000000000 範圍 4儲存中等整數 例如 距離 bigint 不能用smallint 或 int描述的超大整數。8儲存...