mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
概述
我们在了解mysql数据类型不可避免的要先了解这两个属性--unsigned与 zerofill,是否选用这两个属性对选择数据类型有莫大的关系。
1、unsigned
unsigned 就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范围:0 ~ 2^32。看起来unsigned 是个不错的类型,尤其是用在自增或者没有负数的情况。但是在实际使用中会出现一些意外的情况。
create table t(a int unsigned,b int unsigned);insert into t select 1,2;select a-b from t;--设置sql_modeset sql_mode = 'NO_UNSIGNED_SUBTRACTION';select a-b from t;
上图新建了一个测试表,两个字段均为unsigned int型,插入两个值,然后做减法运算时报错,并不是我们想要的结果,正常情况 1-2=-1,但是当数据类型为unsigned时,MySQL 运算的结果也是unsigned,而 -1 已经超出了unsigned 范围,所以会报错。这种情况只需要设置一下sql_mode(NO_UNSIGNED_SUBTRACTION)就可以解决
注意:sql_mode 的设置是有风险的,因为可以通过这个设置允许一些非法的操作。如将 null 值插入not null字段,将非法的日期2017-12-32插入到日期字段。一般在生产环境都都设置为严格模式。所以在不熟悉MySQL底层机制或者不了解 unsigned 原理时,慎用它。
2、zerofill
zerofill 类似一个显示属性,首先来看看MySQL数据库中数字类型后面的长度是什么意思呢,使用show create table 命令来看表的建表语句。
可以看到 int(10) ,这代表什么意思呢?整型不就是4个字节,这个10代表什么意思,如果没有zerofill这属性,括号类的数字没有意义。
修改列,对其添加zerofill属性
select * from t;alter table t change column a a int(4) unsigned zerofill;select * from t;
a 字段前面增加了3个0,这是为什么,因为zerofill属性起作用了,当插入mysql中该字段的值的长度小于定义的长度时,会在数值前面补全相应数据的0。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
mysql同时往两个表插数据_MySQL 的两个特殊数据类型属性 unsigned与 zerofill相关推荐
- mysql插入日期_MySQL 的两个特殊数据类型属性 unsigned与 zerofill
概述 我们在了解mysql数据类型不可避免的要先了解这两个属性--unsigned与 zerofill,是否选用这两个属性对选择数据类型有莫大的关系. 1.unsigned unsigned 就是将数 ...
- mysql如何两个表取差集_mysql 查询两张表的差集
今天在做一个小功能的时候,遇到了需要取两个表的差集,本来可以直接通过两次查表然后通过代码去处理. 由于我个人比较喜欢减少数据库交互,所以在网上查了下关于mysql两个表取差集的方案.但是发现很多的 差 ...
- mysql取出另外一张表的数据_mysql从一张表中取出数据插入到另一张表
最近有这样一个需求,原来的订单表wp_order设计不合理,原来的订单表没有订单详表,只有一张主表.现在是要重构订单表,分为订单主表wp_order_master和订单详表wp_order_detai ...
- Mysql系列课程--第三章 建表 插数据
数据库模型图 /班级表/ CREATE TABLE `class` (`c_no` int(11) NOT NULL AUTO_INCREMENT,`c_name` varchar(45) NOT N ...
- 关于跨DB增量(增、改)同步两张表的数据小技巧
有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...
- oracle两张表 比较好,比较Oracle两张表的数据是否一样
比较Oracle两张表的数据是否一样 爱搞机 2008-10-21 11:00 在某些情况下,我们会需要比较两张表的数据是否一样. 假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字 ...
- php对比两张数据表,【后端开发】PHP比较两个表不同数据
PHP比较两个表不同数据 比较表数据的sql语句: (select * from EMP minus select *from EMP2) union (select * from EMP2 minu ...
- 对比两张表的数据并筛选出数据不同的
描述: 表A和表B的主键A1和B1是相同的,现在需要A2和B2比较,A3和B3比较,将A2不等于B2和A3不等于B3的数据从表A中筛选出来.这样的SQL语句怎么写? SQL语句对比两张表的数据并筛选出 ...
- sqlserver如何把两张表的数据合并为一张表
今天在公司做项目的时候遇到一个情况,有两张临时表A(inco varchar(50)).表B(qty varchar(50)) 需要将这个两个表的数据插入到一张临时表中C(inco varchar(5 ...
最新文章
- RHlinux下安装VORACLE VM VIRTUAL BOX
- 生命起源之谜:RNA世界假说将迎来终结?
- seo优化无法避免却又无可奈何的问题
- portainer图形化监控
- 缓存cache和缓冲区buffer
- nodejs——qureystring的作用
- 【白皮书分享】2021智慧零售私域白皮书-腾讯.pdf(附下载链接)
- SSH命令行连接oracle,命令行操作windows远程登录账户
- 如何设计学术海报(翻译)
- canvas绘画时钟
- word在任意页面添加页码
- 樊登读书搞定读后感_樊登读书会听书《搞定》《高效人士的七个习惯》《人生效率手册》《搞定3》第四周学习感悟...
- 怎么设置计算机升级更新失败怎么办,windows update更新失败怎么办,教您windows update更新失败怎么办...
- 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
- android 8.1 夜间模式,android 快速实现夜间模式
- 【打卡-Coggle竞赛学习2023年3月】对话意图识别
- 劳务派遣有五险一金吗
- 旗帜工作室2021年会总结
- 近期抖音刷播放量怎么刷、抖音刷播放量苹果突然走火如何防止刷量呢?
- Loner_li 机试题 将数字 例如12345.7895”,用程序实现显示壹万贰仟叁佰肆拾伍圆柒角玖分的方式
热门文章
- [转]状态压缩dp(状压dp)
- Centos7 密码重置
- [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析
- jvm lock低性能分析
- linux创建名称为学号的文件,Linux操作系统下用户管理及文件管理.doc
- 学会提问,你就成功了一大半!
- ios开发 循环引用 检测_iOS开发——Block引起循环引用的解决方案
- Java 数据结构与算法面试 链表
- python常用算法包_Python中常用的包--sklearn
- c语言编译如何去掉warning,16种C语言编译警告(Warning)类型的解决方法