日期:2014-05-16  浏览次数:20890 次

mysql int之显示长度
mysql int之显示长度

作为SQL标准的扩展,MySQL也支持整数类型TINYINTMEDIUMINTBIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型

字节

最小值

最大值

?

?

(带符号的/无符号的)

(带符号的/无符号的)

TINYINT

1

-128

127

?

?

0

255

SMALLINT

2

-32768

32767

?

?

0

65535

MEDIUMINT

3

-8388608

8388607

?

?

0

16777215

INT

4

-2147483648

2147483647

?

?

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

?

?

0

18446744073709551615

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

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

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

?

?INT(M)


作为对 ANSI/ISO SQL92 标准的一个扩展,MySQL 也支持上面的表格所列出的整型类型 TINYINT、MEDIUMINT 和 BIGINT。另外一个扩展是 MySQL 支持随意指定一个整型数值的显示格式,这通过在类型的基本关键词后跟一个括号来实现(例如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位 数。当与可选的扩展属性 ZEROFILL 一起使用时,缺省填补用的空格被零代替。举例来说,一个列被定义为 INT(5) ZEROFILL,插入的值 4 被检索出来时为 00004。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。

????? 这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当mysql为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql信任地认为所有的值均适合原始的列宽度。

????? 而int本身就是4个字节 bigint是8个字节 所以说int(X)的含义就是 int决定数据存储的字节 X表示期望数据的列宽度

??? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。

???? 这个代表显示宽度
整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。