当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT用法及代码示例


MySQL 总共提供了 5 种整数类型。下表总结了它们:

类型

存储(字节)

有符号最小值

最小值无符号

最大值有符号

最大值无符号

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

-

0

- 1

- 1

有关签名和未签名的说明,请参阅此处。

指定长度

请注意,我们还可以使用符号 INT(M) 指定要显示的位数,其中 M 是要显示的长度。

注意

仅当您同时使用 ZEROFILL 选项时才应设置长度。否则,指定长度是没有意义的。

  • INT(4) ZEROFILL42的存储值将显示0042

  • INT(4)42的存储值将显示42

  • INT32的存储值将显示32

请注意,无论您指定什么长度,存储空间仍然保持不变。

例子

考虑下表有关一些学生的信息:

student_id

名称

名字

day_enrolled

年龄

用户名

1

Sky

Towner

2015-12-03

17

stowner1

2

Ben

Davis

2016-04-20

19

bdavis2

3

Travis

Apple

2018-08-14

18

tapple3

4

Arthur

David

2016-04-01

16

adavid4

5

Benjamin

Town

2014-01-01

17

btown5

可以使用此处的代码创建上述示例表。

要将 age 列的长度指定为 INT(5)ZEROFILL

ALTER TABLE students MODIFY age INT(5) ZEROFILL;



Query OK, 5 rows affected, 2 warnings (0.03 sec)
Records: 5  Duplicates: 0  Warnings: 2

要检查列的长度是否已更新:

DESCRIBE students;



+--------------+--------------------------+------+-----+---------+----------------+
| Field        | Type                     | Null | Key | Default | Extra          |
+--------------+--------------------------+------+-----+---------+----------------+
| student_id   | int unsigned             | NO   | PRI | NULL    | auto_increment |
| fname        | varchar(30)              | YES  |     | NULL    |                |
| lname        | varchar(30)              | YES  |     | NULL    |                |
| day_enrolled | date                     | YES  |     | NULL    |                |
| age          | int(5) unsigned zerofill | YES  |     | NULL    |                |
| username     | varchar(15)              | YES  |     | NULL    |                |
+--------------+--------------------------+------+-----+---------+----------------+

现在检查agestudents表中的显示方式:

SELECT * FROM students;



+------------+----------+--------+--------------+-------+----------+
| student_id | fname    | lname  | day_enrolled | age   | username |
+------------+----------+--------+--------------+-------+----------+
|          1 | Sky      | Towner | 2015-12-03   | 00017 | stowner1 |
|          2 | Ben      | Davis  | 2016-04-20   | 00019 | bdavis2  |
|          3 | Travis   | Apple  | 2018-08-14   | 00018 | tapple3  |
|          4 | Arthur   | David  | 2016-04-01   | 00016 | adavid4  |
|          5 | Benjamin | Town   | 2014-01-01   | 00017 | btown5   |
+------------+----------+--------+--------------+-------+----------+

请注意,age 值现在用 0 到 5 位数字向左填充。

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。