概述

我们在了解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相关推荐

  1. mysql插入日期_MySQL 的两个特殊数据类型属性 unsigned与 zerofill

    概述 我们在了解mysql数据类型不可避免的要先了解这两个属性--unsigned与 zerofill,是否选用这两个属性对选择数据类型有莫大的关系. 1.unsigned unsigned 就是将数 ...

  2. mysql如何两个表取差集_mysql 查询两张表的差集

    今天在做一个小功能的时候,遇到了需要取两个表的差集,本来可以直接通过两次查表然后通过代码去处理. 由于我个人比较喜欢减少数据库交互,所以在网上查了下关于mysql两个表取差集的方案.但是发现很多的 差 ...

  3. mysql取出另外一张表的数据_mysql从一张表中取出数据插入到另一张表

    最近有这样一个需求,原来的订单表wp_order设计不合理,原来的订单表没有订单详表,只有一张主表.现在是要重构订单表,分为订单主表wp_order_master和订单详表wp_order_detai ...

  4. Mysql系列课程--第三章 建表 插数据

    数据库模型图 /班级表/ CREATE TABLE `class` (`c_no` int(11) NOT NULL AUTO_INCREMENT,`c_name` varchar(45) NOT N ...

  5. 关于跨DB增量(增、改)同步两张表的数据小技巧

    有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...

  6. oracle两张表 比较好,比较Oracle两张表的数据是否一样

    比较Oracle两张表的数据是否一样 爱搞机 2008-10-21 11:00 在某些情况下,我们会需要比较两张表的数据是否一样. 假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字 ...

  7. php对比两张数据表,【后端开发】PHP比较两个表不同数据

    PHP比较两个表不同数据 比较表数据的sql语句: (select * from EMP minus select *from EMP2) union (select * from EMP2 minu ...

  8. 对比两张表的数据并筛选出数据不同的

    描述: 表A和表B的主键A1和B1是相同的,现在需要A2和B2比较,A3和B3比较,将A2不等于B2和A3不等于B3的数据从表A中筛选出来.这样的SQL语句怎么写? SQL语句对比两张表的数据并筛选出 ...

  9. sqlserver如何把两张表的数据合并为一张表

    今天在公司做项目的时候遇到一个情况,有两张临时表A(inco varchar(50)).表B(qty varchar(50)) 需要将这个两个表的数据插入到一张临时表中C(inco varchar(5 ...

最新文章

  1. RHlinux下安装VORACLE VM VIRTUAL BOX
  2. 生命起源之谜:RNA世界假说将迎来终结?
  3. seo优化无法避免却又无可奈何的问题
  4. portainer图形化监控
  5. 缓存cache和缓冲区buffer
  6. nodejs——qureystring的作用
  7. 【白皮书分享】2021智慧零售私域白皮书-腾讯.pdf(附下载链接)
  8. SSH命令行连接oracle,命令行操作windows远程登录账户
  9. 如何设计学术海报(翻译)
  10. canvas绘画时钟
  11. word在任意页面添加页码
  12. 樊登读书搞定读后感_樊登读书会听书《搞定》《高效人士的七个习惯》《人生效率手册》《搞定3》第四周学习感悟...
  13. 怎么设置计算机升级更新失败怎么办,windows update更新失败怎么办,教您windows update更新失败怎么办...
  14. 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
  15. android 8.1 夜间模式,android 快速实现夜间模式
  16. 【打卡-Coggle竞赛学习2023年3月】对话意图识别
  17. 劳务派遣有五险一金吗
  18. 旗帜工作室2021年会总结
  19. 近期抖音刷播放量怎么刷、抖音刷播放量苹果突然走火如何防止刷量呢?
  20. Loner_li 机试题 将数字 例如12345.7895”,用程序实现显示壹万贰仟叁佰肆拾伍圆柒角玖分的方式

热门文章

  1. [转]状态压缩dp(状压dp)
  2. Centos7 密码重置
  3. [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析
  4. jvm lock低性能分析
  5. linux创建名称为学号的文件,Linux操作系统下用户管理及文件管理.doc
  6. 学会提问,你就成功了一大半!
  7. ios开发 循环引用 检测_iOS开发——Block引起循环引用的解决方案
  8. Java 数据结构与算法面试 链表
  9. python常用算法包_Python中常用的包--sklearn
  10. c语言编译如何去掉warning,16种C语言编译警告(Warning)类型的解决方法