详解mysql int类型的长度值问题

此文章转载的,因为之前我也没真正搞懂列类型的长度问题,所以查了一下。感谢原作者。原文地址:http://www.cnblogs.com/echo-something/archive/2012/08/26/mysql_int.html

原文

我的朋友海滨问我mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢.

当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法.…………

字段类型总结

  1. 虽然上面列出了很多字段类型,但最常用也就是 varchar(255),char(255),text,tinyint(4),smallint(6),mediumint,int(11)几种。
  2. 复合类型我们一般用tinyint,更快的时间更省的空间以及更容易扩展
  3. 关于手机号,推荐用char(11),char(11)在查询上更有效率,因为手机号是一个活跃字段参与逻辑会很多。
    一些常用字段举例
    姓名:char(20)
    价格:DECIMAL(7, 3)
    产品序列号:SMALLINT(5) unsigned
    文章内容: TEXT
    MD5: CHAR(32)
    ip: char(15)
    time: int(10)
    email char(32)

原文地址:http://www.cnblogs.com/echo-something/archive/2012/08/26/mysql_int.html
http://www.cnblogs.com/szw/archive/2011/03/16/1986410.html
https://www.kancloud.cn/thinkphp/mysql-design-optimalize/39325

推荐阅读更多精彩内容