類型名稱數據庫 |
佔用位數/(字節)測試 |
數據範圍(有符號)spa |
數據範圍(無有符號)3d |
TYPE(M) 默認code |
TINYINTblog |
8/(1)ip |
-2^7 ~ 2^7-1 ((-128,127))get |
(0,255)table |
4test |
SMALLINT |
16/(2) |
-2^15~2^15-1 (-32 768,32 767) |
(0,65 535) |
6 |
MEDIUMINT |
24/(3) |
-2^23~2^23-1 (-8 388 608,8 388 607) |
(0,16 777 215) |
9 |
INT |
32/(4) |
-2^31-2^32-1 (-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
11 |
BIGINT |
64/(8) |
-2^63~2^63-1 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
20 |
實例代碼
1.1 建立表, 並定義寬度, 爲顯示完整使用ZEROFILL;
MariaDB [typeDB]> CREATE TABLE int_test
-> (intNum INT(4) ZEROFILL,
-> smallNum SMALLINT(3) ZEROFILL);
Query OK, 0 rows affected (0.02 sec)
1.2 插入數據測試
MariaDB [typeDB]> INSERT INTO int_test
-> (intNum, smallNum) VALUES
-> (1, 2),
-> (10, 20),
-> (1111, 222),
-> (11111, 2222);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
1.3 查詢結果, 不足指定寬度時補0
MariaDB [typeDB]> SELECT * FROM int_test;
+--------+----------+
| intNum | smallNum |
+--------+----------+
| 0001 | 002 |
| 0010 | 020 |
| 1111 | 222 |
| 11111 | 2222 |
+--------+----------+
4 rows in set (0.00 sec)
註釋: 不管是INT(2)仍是int(11),它在數據庫裏面存儲的都是4個字節(8位)的長度,存儲的值的範圍爲(-2 147 483 648,2 147 483 647), 而不是隻能存4位或11位數字, INT(M), M: 表明的只是寬度;