mysql中int(1)与int(10)的区别
INT[(M)] [UNSIGNED] [ZEROFILL]
普通⼤⼩的整数。带符号的范围是-2147483648到2147483647。⽆符号的范围是0到4294967295。
INT(1) 和 INT(10)本⾝没有区别,但是加上(M)值后,会有显⽰宽度的设置。
如代码所⽰:
mysql> create table test(id int(3));
我自己的英文Query OK, 0 rows affected (0.47 c)
mysql> inrt into test values(12);
Query OK, 1 row affected (0.12 c)
mysql> inrt into test values(1234);
Query OK, 1 row affected (0.10 c)
mysql> lect * from test;
+------+| id |+------+| 12 || 1234 |+------+
hard error
plastic再试⼀下。这下咱们加上zerofill。
mysql> create table test1(id int(3) zerofill);
Query OK, 0 rows affected (0.32 c)
mysql> inrt into test1 value(12);
Query OK, 1 row affected (0.07 c)traver
mysql> inrt into test1 value(1234);hotstuff
Query OK, 1 row affected (0.05 c)
mysql> lect * from test1;
赫尔辛基大学+------+| id |+------+| 012 || 1234 |+------+
这下注意12前⾯输出多了个0,int(M) 的值多了个0,这就是显⽰宽度的限制。⽽多出来的还会显⽰出来。只是系统判定12显⽰宽度不⾜,会补0来补全显⽰宽度
但是要注意插⼊负数的时候:
没有设置zerofill的时候负数正常显⽰
mysql> inrt into test value(-1234);
Query OK, 1 row affected (0.07 c)
greenmysql> lect * from test;
+-------+| id |+-------+| 12 || 123 || -1234 |+-------+3 rows in t (0.00 c)
咱再来看看设置 zerofill的时候:
zhimei绩效考核与绩效管理mysql> inrt into test1 value(-1234);
Query OK, 1 row affected, 1 warning (0.11 c)
mysql> lect * from test1;
+------+| id |+------+| 012 || 1234 || 000 |+------+
输出为000,插⼊是-1234 。显⽰是000。
2020全国高考语文答案原来添加zerofill的时候系统会给⾃动添加上unsigned属性。就是⾮负数。⽽设置的显⽰宽度为3位。所以就会输出000。