MySQL数据类型--------整数类型实战
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1. 背景* MySQL支持SQL标准整数类型整数(或INT)和SMALLINT。作为标准的扩展,MySQL还支持整数类型TINYINT、MEDIUMINT和BIGINT2. 整数类型所需的存储和值范
千家信息网最后更新 2026年10月31日MySQL数据类型--------整数类型实战
1. 背景
* MySQL支持SQL标准整数类型整数(或INT)和SMALLINT。作为标准的扩展,MySQL还支持整数类型TINYINT、MEDIUMINT和BIGINT
2. 整数类型所需的存储和值范围
| 类型 | 占用空间 | 最小值 | 最大值 |
| (字节) | (signed/Unsigned) | (signed/Unsigned) | |
| TINYINT | 1 | -128 | 127 |
| 0 | 255 | ||
| SMALLINT | 2 | -32768 | 32767 |
| 0 | 65535 | ||
| MEDIUMINT | 3 | -8388608 | 8388607 |
| 0 | 16777215 | ||
| INT | 4 | -2147483648 | 2147483647 |
| 0 | 4294967295 | ||
| BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
| 0 | 18446744073709551615 |
3. zerofill 属性遇到整数类型应用
* 创建zerofill测试表 zerofill_test
mysql> CREATE TABLE zerofill_test( -> `id` INT(6) ZEROFILL -> )ENGINE=INNODB CHARSET=utf8mb4;Query OK, 0 rows affected (0.08 sec)
* 插入数值长度小于6的值
mysql> INSERT INTO zerofill_test SELECT 11111;Query OK, 1 row affected (0.03 sec)Records: 1 Duplicates: 0 Warnings: 0
* 插入数值长度大于6的值
mysql> INSERT INTO zerofill_test SELECT 2222222;Query OK, 1 row affected (0.04 sec)Records: 1 Duplicates: 0 Warnings: 0
* 查看zerofill_test表所有的数据
mysql> SELECT * FROM zerofill_test;+---------+| id |+---------+| 011111 || 2222222 |+---------+2 rows in set (0.01 sec)
* zerofill总结
* 当显示的值长度小于定义时INT定义的长度,高位补0显示
* 当显示的值长度大于定义时INT定义的长度,照常显示
* zerofill显示属性,值不做任何修改
4. Unsigned 类型溢出现象
* 创建unsigned测试表 unsigned_test
mysql> CREATE TABLE unsigned_test( -> id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT, -> data INT UNSIGNED -> )ENGINE=INNODB CHARSET=utf8mb4;Query OK, 0 rows affected (0.12 sec)
* 插入两行一大一小的值
mysql> INSERT INTO unsigned_test SELECT null, 1;Query OK, 1 row affected (0.03 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> INSERT INTO unsigned_test SELECT null, 2;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0
* 查看表中插入的数据值
mysql> SELECT * FROM unsigned_test;+----+------+| id | data |+----+------+| 1 | 1 || 2 | 2 |+----+------+2 rows in set (0.00 sec)
* 利用小数值对大数值做减运算
mysql> SELECT data - (SELECT data FROM unsigned_test where id=2) FROM unsigned_test where id=1;ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(`mytest`.`unsigned_test`.`data` - (select `mytest`.`unsigned_test`.`data` from `mytest`.`unsigned_test` where 1))'
5. 整数类型应用总结
* signed/Unsigned: 是否有符号
* ZEROFILL: 显示属性,值不做任何修改
* 推荐不要使用UNSIGNED, 范围本质上没有大的改变
* UNSIGNED可能会有溢出现象发生
* 自增INT 类型主键建议使用BIGINT
6. 总结
以需求驱动技术,技术本身没有优略之分,只有业务之分。
类型
整数
长度
数值
属性
数据
技术
标准
现象
范围
应用
支持
测试
最大
最小
业务
只有
字节
对大
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
今日互联网科技
智能科技公司是互联网公司吗
科技信息互联网
网络科技有限互联网
互联网 科技公司
互联网科技革命
未来的互联网科技
壹账通互联网科技
蓝色互联网科技
互联网科技项目计划书材料类
晓花互联网科技有限公司网址
消费医药和互联网科技
天津腾达互联网科技有限公司
互联网科技大赛获奖感言
智帮互联网科技公司最近动向
互联网时代科技型公司的机会
广州三三互联网科技有限公司
好易买互联网科技
亚光科技低轨卫星互联网
现代互联网科技公司
咖啡网
美国互联网科技巨头监管
互联网科技小贷
科技创新互联网企业
汇久创客互联网科技
广州善班互联网科技
联恩商钥互联网科技有限公司
互联网科技与管理
福建科技产业互联网发展
山东星卡互联网科技有限公司官网