alter table new_user add realname varchar(20) default '' comment '真实姓名' after gender; //在new_user表里面新增一个realname字段在 gender后面;
注意:
int(M) M表示最大显示宽度。显示宽度与存储大小或类型包含的值的范围无关。
在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(1)、int(4)、int(10) 在磁盘上都是占用 4 bytes 的存储空间。
说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。
这里的定义需要与zerofill配合使用,如果启用了zerofill,就是当数值的位数<M的时候,左侧自动以0补齐,>M的时候没有任何作用,如果启用了zerofill,程序中对查询出的int值需要做intval处理才能正确使用,其实是一件比较坑爹的事情,所以基本没有人这么用
如果int的值为10
int(10)显示结果为0000000010
int(3)显示结果为010
就是显示的长度不一样而已,但都是占用四个字节的空间。
MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
在确定身份证号码字段的时候下面是错误的
alter table new_user add idnumber int(20) default 0 comment '身份证号码' after realname;
因为身份证号码 int 字段4字节根本放不下18位的身份证号码,用verchar(20)才能放下
alter table new_user add idnumber varchar(20) default '0' comment '身份证号码' after realname;