MySQL的数值类型
整数类型
整数类型包含TINYINT
、SMALLINT
、MEDIUMINT
、INT
、 BIGINT
等。
存取范围
类型 | 存储大小 | 默认显示宽度(个) | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|---|
TINYINT(m) | 1Byte | m:4 | -128 - 127 | 0 - 255 | 小整数值 |
SMALLINT(m) | 2Byte | m:6 | -32768 - 32767 | 0 - 65535 | 大整数值 |
MEDIUMINT(m) | 3Byte | m:9 | -8388608 - 8388607 | 0 - 16777215 | 大整数值 |
INT|INTEGER(m) | 4Byte | m:11 | -2147483648 - 2147483647 | 0 - 4294967295 | 大整数值 |
BIGINT(m) | 8Byte | m:20 | -9233372036854775808 - 9223372036854775807 | 0 - 18446744073709551615 | 极大整数值 |
m
为其显示宽度,在为字段设置 zerofill
约束条件时有效,否则将不会填充满整个显示宽度。
可选约束
unsigned
:使用无符号存储。
zerofill
:显示宽度不够时使用0进行填充。
显示宽度
使用一切数值类型时,指定其宽度均是为其指定显示宽度,并非存入的限制宽度。
以下示例将演示为TINYINT
类型设置设置了显示宽度后,当宽度不够时将以指定字符进行填充。
mysql> CREATE TABLE `test` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `a` tinyint(4) unsigned zerofill DEFAULT NULL,
-> `b` smallint(6) unsigned DEFAULT NULL,
-> `c` mediumint(9) DEFAULT NULL,
-> `d` int(11) DEFAULT NULL,
-> `e` bigint(20) DEFAULT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Query OK, 0 rows affected, 9