mysql 長度 含義 mysql資料型別長度

2021-10-17 17:15:15 字數 1802 閱讀 7229

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...