MySQL之数据类型 int(M)使用说明攻略
MySQL之数据类型 int(M)使用说明攻略
INT[(M)] [UNSIGNED] [ZEROFILL]:普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。参数M与zerofill一起使用,如果不加zerofill那么设置参数M无任何效果。M值设置一个显示宽度,如果插入的数据宽度少于M值,那么当我们用select查询表数据时候,mysql会在该数值的左侧添加0补足到M位数,然后输出。如果超出M位,mysql就不再补足了。M的值可以大于int的最大位数10位。如果为一个数值列 指定 ZEROFILL,MySQL自动为该列添加UNSIGNED属性。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]:很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
BOOL,BOOLEAN:是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。在将来,将根据标准SQL引入完全布尔类型的处理
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]:小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]:中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]:普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
案例:
mysql> create table q (id int zerofill, id2 mediumint(53) zerofill) ;
mysql> insert into q values (3,4111);
mysql> select *from q;
+------------+-------------------------------------------------------+
| id | id2 |
+------------+-------------------------------------------------------+
| 0000000003 | 00000000000000000000000000000000000000000000000004111 |
+------------+-------------------------------------------------------+
可以看到如果不设置M值,那么int默认取10.smallint如果不设置M,mysql默认取值为5,tinyint如果不设置M,mysql默认取值为3.当然tinyint的参数M也可以大于3.可以看到,如果省略参数M,直接加入zerofill关键字,那么系统默认M为该当前数据类型的最大位数。如int最大位数为10位数。