1個位元組= 8位 tinyint 為乙個位元組 2的8次方= 256 所以最多儲存到256
日期和時間資料型別
mysql資料型別
含義date
3位元組,日期,格式:2014-09-18
time
3位元組,時間,格式:08:42:30
datetime
8位元組,日期時間,格式:2014-09-18 08:42:30
timestamp
4位元組,自動儲存記錄修改的時間
year
1位元組,年份
數值資料型別
整型mysql資料型別
含義(有符號)
tinyint
1位元組,範圍(-128~127)
smallint
2位元組,範圍(-32768~32767)
mediumint
3位元組,範圍(-8388608~8388607)
int4位元組,範圍(-2147483648~2147483647)
bigint
8位元組,範圍(+-9.22*10的18次方)
上面定義的都是有符號的,當然了,也可以加上unsigned關鍵字,定義成無符號的型別,那麼對應的取值範圍就要翻翻了,比如:
tinyint unsigned的取值範圍為0~255。
int(m) 在 integer 資料型別中,m 表示最大顯示寬度。在 int(m) 中,m 的值跟 int(m) 所佔多少儲存空間並無任何關係。和數字位數也無關係 int(3)、int(4)、int(8) 在磁碟上都是占用 4 btyes 的儲存空間。
浮點型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;
所以,在使用浮點型的時候,還是要注意陷阱的,要以插入資料庫中的實際結果為準。
字串資料型別
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不會。
原文:
mysql 索引長度
specified key was too long max key length is 767 bytes mysql在innodb引擎下的主鍵索引或者unique索引的最大長度為767bytes,在myisam下是1000bytes。當時我在建立unique索引的時候使用了兩個varchar 2...
mysql索引長度
大家應該知道innodb單列索引長度不能超過767bytes,聯合索引還有乙個限制是長度不能超過3072。mysql createtable tb a varchar 255 defaultnull,b varchar 255 defaultnull,c varchar 255 defaultnul...
Mysql字段長度
列型別 需要的儲存量 tinyint 1 位元組 allint 2 個位元組 mediumint 3 個位元組 int 4 個位元組 integer 4 個位元組 bigint 8 個位元組 float x 4 如果 x 24 或 8 如果 25 x 53 float 4 個位元組 double 8...