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安全错误
数据库的锁怎样保障安全
互联网科技图片
伟宏互联网科技
西安纸贵互联网科技有限公司
互联网科技行业发展
天下捷融互联网科技
掌上梦互联网科技
广州慧亚互联网科技怎么样
互联网校园科技培训
互联网科技项目计划书材料类
昊天互联网科技有限公司
互联网金融科技元年
互联网公司高科技产品
深圳互联网科技的发展
宇信科技在杭州互联网排第几
互联网科技包装股
福仕德教育科技互联网
北京军民互联网科技公司
广西泛欧互联网科技有限公司
北京瑞云互联网科技有限公司
颐高云石互联网科技
广东万易互联网科技有限公司惠州分公司
南京欣网互联网科技
贵州叶脉互联网科技有限公司所属行业
健康食品互联网创新科技园项目
互联网保险科技创业
互联网科技创新的路径
互联网科技包装股
广西科技产业互联网是什么
互联网科技的前景
山东蛋芒互联网科技有限公司