MySQL欄位型別小記

hackeruncle發表於2016-12-22

這裡先總結資料型別。MySQL中的資料型別大的方面來分,可以分為:日期和時間、數值,以及字串。下面就分開來進行總結。

1.日期和時間資料型別 

MySQL資料型別 含義
date 3位元組,日期,格式:2014-09-18
time 3位元組,時間,格式:08:42:30
datetime 8位元組,日期時間,格式:2014-09-18 08:42:30
timestamp 4位元組,自動儲存記錄修改的時間
year 1位元組,年份

 

 

2.數值資料型別

整型

MySQL資料型別 含義(有符號)
tinyint 1位元組,範圍(-128~127)
smallint 2位元組,範圍(-32768~32767)
mediumint 3位元組,範圍(-8388608~8388607)
int 4位元組,範圍(-2147483648~2147483647)
bigint 8位元組,範圍(+-9.22*10的18次方)

 

上面定義的都是有符號的,當然了,也可以加上unsigned關鍵字,定義成無符號的型別,那麼對應的取值範圍就要翻翻了,比如:

tinyint unsigned的取值範圍為0~255。

浮點型

MySQL資料型別 含義
float(m, d) 4位元組,單精度浮點型,m總個數,d小數位
double(m, d) 8位元組,雙精度浮點型,m總個數,d小數位
decimal(m, d) decimal是儲存為字串的浮點數


我在MySQL中建立了一個表,有一列為float(5, 3);做了以下試驗:

1.插入123.45678,最後查詢得到的結果為99.999;
2.插入123.456,最後查詢結果為99.999;
3.插入12.34567,最後查詢結果為12.346;

所以,在使用浮點型的時候,還是要注意陷阱的,要以插入資料庫中的實際結果為準。

3.字串資料型別

MySQL資料型別 含義
char(n) 固定長度,最多255個字元
varchar(n) 可變長度,最多65535個字元
tinytext 可變長度,最多255個字元
text 可變長度,最多65535個字元
mediumtext 可變長度,最多2的24次方-1個字元
longtext 可變長度,最多2的32次方-1個字元

1.char(n)和varchar(n)中括號中n代表字元的個數,並不代表位元組個數,所以當使用了中文的時候(UTF8)意味著可以插入m箇中文,但是實際會佔用m*3個位元組。
2.同時char和varchar最大的區別就在於char不管實際value都會佔用n個字元的空間,而varchar只會佔用實際字元應該佔用的空間+1,並且實際空間+1<=n。
3.超過char和varchar的n設定後,字串會被截斷。
4.char的上限為255位元組,varchar的上限65535位元組,text的上限為65535。
5.char在儲存的時候會截斷尾部的空格,varchar和text不會。
6.varchar會使用1-3個位元組來儲存長度,text不會。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30089851/viewspace-2131189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章