MySQL 總共提供了 5 種整數類型。下表總結了它們:
類型 |
存儲(字節) |
有符號最小值 |
最小值無符號 |
最大值有符號 |
最大值無符號 |
---|---|---|---|---|---|
|
1 |
-128 |
0 |
127 |
255 |
|
2 |
-32768 |
0 |
32767 |
65535 |
|
3 |
-8388608 |
0 |
8388607 |
16777215 |
|
4 |
-2147483648 |
0 |
2147483647 |
4294967295 |
|
8 |
- |
0 |
- 1 |
- 1 |
有關簽名和未簽名的說明,請參閱此處。
指定長度
請注意,我們還可以使用符號 INT(M)
指定要顯示的位數,其中 M
是要顯示的長度。
注意
僅當您同時使用 ZEROFILL
選項時才應設置長度。否則,指定長度是沒有意義的。
-
INT(4) ZEROFILL
與42
的存儲值將顯示0042
-
INT(4)
與42
的存儲值將顯示42
-
INT
與32
的存儲值將顯示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 | |
+--------------+--------------------------+------+-----+---------+----------------+
現在檢查age
在students
表中的顯示方式:
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 位數字向左填充。
相關用法
- MySQL TIME_FORMAT方法用法及代碼示例
- MySQL TIMEDIFF方法用法及代碼示例
- MySQL TIME方法用法及代碼示例
- MySQL TIMESTAMPDIFF()用法及代碼示例
- MySQL TIMESTAMP方法用法及代碼示例
- MySQL TIME_TO_SEC方法用法及代碼示例
- MySQL TIME用法及代碼示例
- MySQL TIMESTAMPDIFF方法用法及代碼示例
- MySQL TIME()用法及代碼示例
- MySQL TIMESTAMPADD方法用法及代碼示例
- MySQL TO_DAYS方法用法及代碼示例
- MySQL TRUNCATE方法用法及代碼示例
- MySQL TAN方法用法及代碼示例
- MySQL TRIM()用法及代碼示例
- MySQL TAN()用法及代碼示例
- MySQL TO_BASE64方法用法及代碼示例
- MySQL TO_SECONDS方法用法及代碼示例
- MySQL Trim()用法及代碼示例
- MySQL TRUNCATE用法及代碼示例
- MySQL TRUNCATE()用法及代碼示例
- MySQL TRIM方法用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。