回覆列表
-
1 # 使用者5497403410412
相關內容
- 乙太網資料包的大小為64-1518,欄位長度為46-1500,他們之間有什麼關係?
- MYSQL表中新增欄位指定位置,SQL語句該怎麼寫?
- 如何判斷MySQL、Oracle、PostgreSql資料庫中某表或欄位是否存在?
- mysql表用count欄位排序,出現usingtemporary怎麼最佳化?
- mysql資料表字段null yes和no的區別?
- MySQL系統查詢條件的子查詢條件中包含了主表字段,應該如何最佳化?
- SQL Server或Mysql,如何對本表字段以某種關係進行遞迴刪除?
- 怎麼在mysql資料庫中的一個欄位中新增一個字元?
- Mysql多欄位大表的幾種最佳化方法?
- 在oracle中number型別的欄位長度是什麼意思?
int型別, 佔用位元組數為4byte, 學過計算機原理的同學應該知道, 位元組(byte)並非是計算機儲存的最小單位, 還有比位元組(byte)更小的單位, 也就是位(bit),一個位就代表一個0或1; 8個位組成一個位元組; 一般位元組用大寫B來表示byte, 位用小寫b來表示bit.
計算機儲存單位的換算:
1B=8b
1KB=1024B
1MB=1024KB
那麼根據int型別允許儲存的位元組數是4個位元組, 我們就能換算出int UNSIGNED(無符號)型別的能儲存的最小值為0, 最大值為4294967295(即4B=32b, 最大值即為32個1組成);
mysql手冊中這個長度/值用"M"來表示的. 細心的朋友應該有注意到過mysql手冊上有這麼一句話: M指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與儲存大小或型別包含的值的範圍無關;
這句話看上去不太容易理解, 因為這裡有個關鍵詞容易讓我們混淆, "最大顯示寬度"我們第一反應是該欄位的值最大能允許存放的值的寬度. 以為我們建了int(1),就不能存放資料10了, 其實不是這個意思.
這個M=5我們可以簡單的理解成為, 我們建立這個長度是為了告訴MYSQL資料庫我們這個欄位的儲存的資料的寬度為5位數, 當然如果你不是5位數(只要在該型別的儲存範圍之內)MYSQL也能正常儲存
我們看到現在我的number欄位, 長度(M)=5, 屬性=UNSIGNED ZEROFILL(無符號,用0來填充位數), 設定這個屬性後我往表時插入資料,系統會自動把number欄位M不夠5位的在左側用0來填充; 效果如下
但有一點看完該文件你應該清楚的知道, 長度M與你存放的數值型的數的大小無關.
如果使用js顯示,那麼前導0就會被轉化,00001->1