問題
- int(1) int(4) 中的作用是做什么
概述
int(1),int(4)括號中的數字是為了填充長度空缺的長度。
int(1)和int(4)
下面兩小章節來自參考資料
浮點型的長度
浮點型"的長度是用來限制數字存儲范圍的. 比如 float(3,2) 只能夠寫入 0.00~999.99.
整型的長度
"整型"的長度並不會限制存儲的數字范圍. 比如, int 和 int(3) 的存儲范圍都是 -2147483648 ~ 2147483647
, int unsigned 和 int(3) unsigned 的存儲范圍都是0 ~ 4294967295
.
"整型"的長度實際上可以理解為"顯示長度", 如果該字段開啟 "Zerofill/補零"就能很明顯地知道它的作用.
比如, a b c d 分別表示 int(1) int(2) int(3) int(3) zerofill, 那么實際存入數據庫的數據是這樣的:
| v | a | b | c | d | +-----+-----+-----+-----+-----+ | 1 | 1 | 1 | 1 | 001 | | 10 | 10 | 10 | 10 | 010 | | 100 | 100 | 100 | 100 | 100 |
PS. 如果開啟 "Zerofill/補零", 則自動會默認為 "Unsigned/非負數".
作用
《高性能MySQL》 中的說明
MySQL 可以為整數類型指定寬度, 例如 INT(11), 對大多數應用這是沒有意義的: 它不會限制值的合法范圍, 只是規定了 MySQL 的一些交互工具(例如 MySQL 命令行客戶端)用來顯示字符的個數. 對於存儲和計算來說, INT(1) 和 INT(20) 是相同的
參考資料 :
- https://www.jianshu.com/p/61293b416335