Required Storage and Range for Integer Types Supported by MySQL
Type | Storage (Bytes) | Minimum Value Signed | Minimum Value Unsigned | Maximum Value Signed | Maximum Value Unsigned |
| 1 | | | | |
| 2 | | | | |
| 3 | | | | |
| 4 | | | | |
| 8 | -2的63方 | | 2的63方-1 | 2的64方-1 |
TINYINT
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
A very small integer. The signed range is -128
to 127
. The unsigned range is 0
to 255
.
SMALLINT
A small integer. The signed range is -32768
to 32767
. The unsigned range is 0
to 65535
.
MEDIUMINT
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
A medium-sized integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215.
INT
INT[(
M
)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2147483648
to 2147483647
. The unsigned range is 0
to 4294967295.
INTEGER
INTEGER[(
M
)] [UNSIGNED] [ZEROFILL]
This type is a synonym for INT
.
BIGINT
BIGINT[(
M
)] [UNSIGNED] [ZEROFILL]
A large integer. The signed range is -9223372036854775808
to 9223372036854775807
. The unsigned range is 0
to 18446744073709551615
.
SERIAL
SERIAL
is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
.
DEMO
create table serial_test (id SERIAL);
从图可知,是无符号的bigint类型,不能为空,主键,自动增长
1个表中,指定多个字段为serial,会报错(Incorrect table definition; there can be only one auto column and it must be defined as a key)
BOOL, BOOLEAN
These types are synonyms for TINYINT(1)
. A value of zero is considered false. Nonzero values are considered true.
0是fase,不为0是true