2024年4月27日发(作者:)

MySQL 列类型概述

MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。几种列类型描述使用了下述

惯例:

M

表示最大显示宽度,最大有效显示宽度是255;

D

适用于浮点和定点类型,并表示小数点后面的

位数。最大可能的值是30,但不应大于

M

-2。方括号([])表示可选部分。

1、数值类型概述

如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。SERIAL是BIGINT UNSIGNED NOT

NULL AUTO_INCREMENT UNIQUE的一个别名。在整数列定义中,SERIAL DEFAULT VALUE是NOT NULL

AUTO_INCREMENT UNIQUE的一个别名。

类型范围说明:

类型

TINYINT

SMALLINT

MEDIUMINT

INT

BIGINT

1.1、BIT

BIT[(M)]

位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。

1.2、INYINT

INYINT[(M)] [UNSIGNED] [ZEROFILL]

很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

1.3、BOOL

BOOL,BOOLEAN

是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。在将来,将根据标准SQL引入完全布尔类

型的处理。

字节

1

2

3

4

8

最小值

带符号的 -128

无符号0

带符号的 -32768

无符号0

带符号的-8388608

无符号0

带符号的-2147483648

无符号0

带符号的

-9223372

无符号0

最大值

127

255

32767

65535

8388607

16777215

2147483647

4294967295

9223372

18446744

1.4、SMALLINT

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

1.5、MEDIUMINT

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

1.6、INT

INT[(M)] [UNSIGNED] [ZEROFILL]

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

1.7、INTEGER

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

这是INT的同义词。

1.8、BIGINT

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

大整数。带符号的范围是-9223372到9223372。无符号的范围是0到

18446744。

1.9、FLOAT

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到

3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小

些。

M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮

点数精确到大约7位小数位。

如果指定UNSIGNED,不允许负值。

使用浮点数可能会遇到意想不到的问题,因为在MySQL中的所有计算用双精度完成。

1.10、DOUBLE

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

普通大小(双精度)浮点数。允许的值是-1.7976931348623157E+308到-2.2254E-308、0和

2.2254E-308到 1.7976931348623157E+308。这些是理论限制,基于IEEE标准。实际的范围