第一部分: 整数
存储类型——数据范围为-2^(n-1)到2^(n-1)-1,这里的n是所需存储空间的位数。1个字节=8位
类型名称
占用位数/(字节)
数据范围(有符号)
数据范围(无有符号)
TYPE(M) 默认
TINYINT
8/(1)
-2^7 ~ 2^7-1 ((-128,127))
(0,255)
4
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: 代表的只是宽度;