类型名称数据库 |
占用位数/(字节)测试 |
数据范围(有符号)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: 表明的只是宽度;