我在创建数据库表的时候 create table test(
            id int(1)
          );插入数据:
insert into test values (
        "9999");然后查询插入后的数据:
select * from test;
在id那一列,显示数据也是9999;我明明设置了int长度为1 ,为何显示 9999,而没有限制呢?我是菜鸟,求解             

解决方案 »

  1.   

    MySQL  int(X) 中 X 的含义From: http://www.amxku.net/MySQL-int/ 这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 mysql 为某些复杂的联结(join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度。而int本身就是4个字节 bigint是8个字节 所以说int(X)的含义就是 int决定数据存储的字节 X表示期望数据的列宽度在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。这个代表显示宽度
    整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。
      

  2.   

    1楼正解 mysql基础类型 下面
    http://tech.itzero.com/2006/1015/1202.html
      

  3.   

    int(1)是4个字节,而不是4位数