我的问题: 
1、为什么在申明字段时,指定的数据类型还得指定长度呢?比如smallint它内部定义为两个字节,但是我们在用的时候可以指定   4,5,6等长度都行??那它内部定义还有意义吗?
2、像BLOG这种二进制的类型,内部已经标识了只大长度是多少多少,但是你也可以定义超过它本身的长度?这到底是怎么回事?谢谢大家,帮小弟解决疑问。

解决方案 »

  1.   

    当类型设置zerofill时,显示int(5) 显示至少五位,不到用0填充
    mysql> create table testabc(a int(5) zerofill);
    Query OK, 0 rows affectedmysql> insert into testabc values(1);
    Query OK, 1 row affectedmysql> select * from testabc;
    +-------+
    | a     |
    +-------+
    | 00001 |
    +-------+
    1 row in set
      

  2.   

    大哥,我问的不是这意思啊,我的意思是类型的长度在mysql内部已经有默认的定义的,为什么我们在用的时候还要自己指定长度呢?就好像VC 里面的int 是4个字节写死了,不可能定义int 为5个字节吧。
      

  3.   

    int(5)不是指定得存储长度  是客户端得显示长度