MysqL中,int(n)括号里面的数据n无论写成多少,都是占4个字节的空间,最多能够存10位数。N不代表能够存多少位数,显示宽度M与数据所占用空间,数值的范围无关。 如果在定义字段的时候指定zerofill,那么当数值的显示宽度小于指定的列宽度时候,则默认补充的空格用0代替,例如定义了zerofill,int(4)中的4就有意义了,我们插入一个数1,他会补充完成0001,int(10)则为0000000001。
测试如下:
1、创建一张int(4)的测试表
MysqL> create table t1(ID int(4));query OK,0 rows affected (0.08 sec)
MysqL> insert into t1 values(1);query OK,1 row affected (0.00 sec)
MysqL> insert into t1 values(2);query OK,1 row affected (0.02 sec)
MysqL> insert into t1 values(2);query OK,1 row affected (0.00 sec)
MysqL> select * from t1;+------+| ID |+------+| 1 || 2 || 2 |+------+3 rows in set (0.00 sec)
2、创建一张int(10)的测试表
MysqL> create table t2(ID int(10));query OK,0 rows affected (0.01 sec)
MysqL> insert into t2 values(1);query OK,1 row affected (0.01 sec)
MysqL> insert into t2 values(2);query OK,1 row affected (0.01 sec)
MysqL> insert into t2 values(3);query OK,1 row affected (0.00 sec)
MysqL> select * from t2;+------+| ID |+------+| 1 || 2 || 3 |+------+3 rows in set (0.00 sec)
3、创建一张int(4) zerofill的测试表
MysqL> create table t3(ID int(4) zerofill);query OK,0 rows affected (0.02 sec)
MysqL> insert into t3 values(1);query OK,1 row affected (0.00 sec)
MysqL> insert into t3 values(2);query OK,1 row affected (0.00 sec)
MysqL> insert into t3 values(3);query OK,1 row affected (0.00 sec)
MysqL> select * from t3;+------+| ID |+------+| 0001 || 0002 || 0003 |+------+3 rows in set (0.00 sec)
自动补齐前面的0。
4、创建一张int(10) zerofill的测试表
MysqL> create table t4(ID int(10) zerofill);query OK,0 rows affected (0.02 sec)
MysqL> insert into t4 values(1);query OK,1 row affected (0.01 sec)
MysqL> insert into t4 values(2);query OK,1 row affected (0.01 sec)
MysqL> insert into t4 values(3);query OK,1 row affected (0.01 sec)
MysqL> SELECT * FROM t4;+------------+| ID |+------------+| 0000000001 || 0000000002 || 0000000003 |+------------+3 rows in set (0.00 sec)
总结以上是内存溢出为你收集整理的MYSQL INT(N)以及zerofill的使用区别全部内容,希望文章能够帮你解决MYSQL INT(N)以及zerofill的使用区别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)