数据类型
在这些数据类型当中,有一些数据类型是常用的,有些数据类型不常用,也有些对于刚入门数据库的同学有点困惑的地方。对于这些数据类型,其实就是一个记忆过程,记住了,就是了。
上面说了个对于刚入门同学有个困惑但不是难点的地方,就是数据的显示宽度和数据类型的长度。
我们在创建或修改一个表结构的时候,比如可能用到的下面的语句:
CREATE TABLE `user` (
`id` int(4),
`name` varchar(12),
)
这里我们定义了2个字段,一个是int型的显示宽度为4的字段id,一个为varchar类型的宽度为12的字段name。但这里的int(4)和varchar(12)的意义不同。
int(4),表示字段id显示的宽度为4位,如果不足4位的时候补0,如果超出了4位的时候,则按照实际数值进行存储,最大值不超过11位即可。
varchar(12)表示字段name最多可以显示12位,包括字母或汉字(字母和汉字都算是一位)。如果字段值超出了12位则不存储。
总结:
int(M):M表示的是数据的显示宽度,不是数据的最大宽度,超出该宽度但并没有超出最大宽度时,则按照实际数据存储,如果不足M位的时候补0;
varchar(M):M表示varchar数据类型显示的最大宽度,超出则被阶段不存储。
在int型的数据类型中,数据的显示宽度和该数据类型的取值范围是没有关系的。