我在創(chuàng)建一個(gè)表的時(shí)候,通常都是要加字段長(zhǎng)度的,比如id int(5) ,username varchar(50),等等,但是我查了一下這里面的長(zhǎng)度并不代表實(shí)際存儲(chǔ)的長(zhǎng)度,而是和zerofill結(jié)合起來會(huì)有一些不同,并不代表實(shí)際存儲(chǔ)值的大小,那么我就在想,為什么我見到的所有的教程上面都要加這個(gè)長(zhǎng)度呢,我不加行不行,因?yàn)檫@個(gè)東西我加不加效果是一樣的,假如我不考慮0填充的話。加了這個(gè)長(zhǎng)度是不是對(duì)性能方法有影響啊,還是其他原因,并且我發(fā)現(xiàn),varchar這種類型的,還必須加長(zhǎng)度,不加的話還會(huì)報(bào)錯(cuò),這個(gè)我就更不能理解了,為什么?在線等,很著急?。。。。?
1 回答
已采納

忘性最大的人
TA貢獻(xiàn)118條經(jīng)驗(yàn) 獲得超37個(gè)贊
int(M)“(M)”指定了 int 型數(shù)值顯示的寬度,如果字段數(shù)據(jù)類型是 int(4),則:當(dāng)顯示數(shù)值 10 時(shí),在左邊要補(bǔ)上 “00”;當(dāng)顯示數(shù)值 100 是,在左邊要補(bǔ)上“0”;當(dāng)顯示數(shù)值 1000000 時(shí),已經(jīng)超過了指定寬度“(4)”,因此按原樣輸出。在 int(M) 中,M 的值跟 int(M) 所占多少存儲(chǔ)空間并無任何關(guān)系。 int(3)、int(4)、int(8) 在磁盤上都是占用 4 btyes 的存儲(chǔ)空間。說白了,除了顯示給用戶的方式有點(diǎn)不同外,int(M) 跟 int 數(shù)據(jù)類型是相同的。而且這個(gè)M不寫也是可以的,默認(rèn)為1(在1到64之間取值),可能是為了格式一致的原因,而varchar(M)M代表了字段的長(zhǎng)度,必須指定。
添加回答
舉報(bào)
0/150
提交
取消