注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

mysql中int、bigint、smallint和tinyint的区别与长度  

2014-11-26 11:09:26|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
mysql中int、bigint、smallint和tinyint的区别与长度
2012-12-17 13:46:04???? 我来说两句 ????? 作者:dolphinzhang
收藏 mysql中int、bigint、smallint和tinyint的区别与长度 - redtea - _我要投稿

mysql中int、bigint、smallint和tinyint的区别与长度

通过创建一张表,来看看 mysql 中 int bigint smallint 和 tinyint的区别与长度

? www.2cto.com?

1、在mysql 命令行创建如下表

01

CREATE TABLE `test_int_1` (

02

? `int_id` int NOT NULL,

03

? `bigint_id` bigint DEFAULT NULL,

04

? `bigint_25` bigint(25) DEFAULT NULL,

05

? `bigint_18` bigint(18) DEFAULT NULL,

06

? `int_8` int(8) DEFAULT NULL,

07

? `int_3` int(3) DEFAULT NULL,

08

? `smallint_id` smallint DEFAULT NULL,

09

? `tinyint_id` tinyint DEFAULT NULL,

10

? PRIMARY KEY (`int_id`)

11

) ENGINE=InnoDB DEFAULT CHARSET=utf8

2、desc

01

mysql> desc test_int_1;

02

+-------------+-------------+------+-----+---------+-------+

03

| Field?????? | Type??????? | Null | Key | Default | Extra |

04

+-------------+-------------+------+-----+---------+-------+

05

| int_id????? | int(11)???? | NO?? | PRI | NULL??? |?????? |

06

| bigint_id?? | bigint(20)? | YES? |???? | NULL??? |?????? |

07

| bigint_25?? | bigint(25)? | YES? |???? | NULL??? |?????? |

08

| bigint_18?? | bigint(18)? | YES? |???? | NULL??? |?????? |

09

| int_8?????? | int(8)????? | YES? |???? | NULL??? |?????? |

10

| int_3?????? | int(3)????? | YES? |???? | NULL??? |?????? |

11

| smallint_id | smallint(6) | YES? |???? | NULL??? |?????? |

12

| tinyint_id? | tinyint(4)? | YES? |???? | NULL??? |?????? |

13

+-------------+-------------+------+-----+---------+-------+

14

8 rows in set (0.00 sec)

对比发现 int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 :

int???????????? -------???? int(11)

bigint?????? -------???? bigint(20)

smallint?? -------???? smallint(6)

tinyint???? -------???? tinyint(4)

下面是这几种类型的取值范围

mysql中int、bigint、smallint和tinyint的区别与长度 - redtea - _

MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。int(M) 在 integer 数据类型中,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。

显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系, int(3)、int(4)、

int(8) 在磁盘上都是占用 4 btyes 的存储空间。

当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,

值4检索为00004。

bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。

  评论这张
 
阅读(384)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017