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

​TINYINT​

1

​-128​

​0​

​127​

​255​

​SMALLINT​

2

​-32768​

​0​

​32767​

​65535​

​MEDIUMINT​

3

​-8388608​

​0​

​8388607​

​16777215​

​INT​

4

​-2147483648​

​0​

​2147483647​

​4294967295​

​BIGINT​

8

-2的63方 

​0​

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);

Int Data Type Syntax_主键

从图可知,是无符号的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