當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。