首页新闻博问专区闪存云上钜惠我的博客我的园子账号设置退出登录注册登录
赐我白日梦 赐我白日梦的技术博客 博客园首页标签新随笔联系管理随笔 - 167 文章 - 0 评论 - 98面试题:对NotNull字段插入Null值 有啥现象? Hi,大家好!我是白日梦。今天我要跟你分享的话题是:“对NotNull字段插入Null值有啥现象?”一、 推荐阅读#首发地址:https://mp.weixin.qq.com/s/b30fKiQJTZARZazQdv6WKw
使用推荐阅读,有更好的阅读体验,公众号首发!分享不易,欢迎关注~
二、从一个实验开始#首先创建数据表id为not null类型,我们像下面这样插入。所以说默认情况下,如果该列要求不能为null。用户还往里面写入null,就会报错:cannot be null当然本篇文章并没有结束,下面跟大家分享另外一个拓展知识:sql mode 。这个拓展知识点也是下一篇文章“ 能谈谈 date、datetime、time、timestamp、year的区别吗?” 的储备知识。三、sql 的执行模式#这就引出了一个 sql_mode 的概念,也就是SQL的执行模式。默认情况下MySQL会用严格模式运行SQL。你可以像下面这样查看MySQL使用了哪些sql mode。MySQL会根据sql_mode系统变量的值将这些模式不同地应用于不同的客户端。使用不同的sql mode执行sql,可能会得到不同的响应结果。四、做几个小实验#为了更直观的看出sql mode 对sql执行结果的影响,推荐你看一下下面的这两个小Demo,都不复杂。Demo1:创建一张简单的表 t3,id非空、没有默认值。先看看默认的情况下,会有什么响应!在默认的sql mode下,执行一条插入空值的语句,发现报错了再看看,关闭严格的sql mode后会有什么响应。关闭严格模式后执行的结果如下图所示。你会发现这次结果是 wanring + MySQL帮你插入默认值Demo2:默认开启严格模式后往int类型的列插入空串(任意串)会报错。关闭严格模式后,执行下面的SQL会爆出wanrning。查看插入的结果从上面的实验来看,相信你已经看出了:无论是否开启了严格模式,MySQL都不允许往not null字段插入null值,它不会因为你插入null,而将null转成该数据类型的0值。所谓都严格模式,就是将参数 NO_AUTO_CREATE_USER 设置给sql mode五、需要你了解的几个 sql mode#下面再为大家介绍几个和日期相关的sql mode。研发的同学了解就好了,不用刻意记住它,了解就是加分项!1、STRICT_TRANS_TABLES: 将其加入到sql_mode之后,MySQL会判断是否可以直接把用户给的值插入事务表中,如果不能就中止该语句。对于非事务表,如果该值出现在单行语句或多行语句的第一行中,则中止该语句。结合上面的例子可以更好的理解STRICT_TRANS_TABLES的作用。
2、NO_ZERO_IN_DATE 将其加入到sql_model之后,MySQL将不允许你将诸如 0000-10-10、2020-00-10、2020-10-00等年份、月份、日期为零的值插入到Date列中。目前该参数处于目前该参数默认会生效,但是在未来的版本中将会被删除。
3、NO_ZERO_DATE: 该参数控制MySQL是否允许将 '0000-00-00’作为有效日期。如果未启用此模式, '0000-00-00’允许插入不会产生警告。如果启用此模式,‘0000-00-00’ 允许插入且产生警告。如果启用了此模式和严格模式, ‘0000-00-00’ 插入产生错误,除非 IGNORE同样给出。对于 INSERT IGNORE和UPDATE IGNORE,'0000-00-00’允许插入且产生警告。
参考:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html
六、结语#下一篇文章白日梦将结合本节的 sql mode 同你分享另一个话题:“能谈谈 date、datetime、time、timestamp、year的区别吗?”为大家带来MySQL面试专题!本文是第 3 篇、全文110篇!公众号首发! 以问答的方式,由浅入深的帮你应对各类MySQL面试题的狂轰滥炸!当然也不乏会分享一些高阶读写分离数据库中间件原理及落地的技术实现,为你揭开数据库中间件神秘的面纱! 面试官都关注了!你还在犹豫什么呢? 查看MySQL专题110篇文章大纲:https://mp.weixin.qq.com/s/HTw-Z-SyprYA8bCBZ4NpGQ作者: 赐我白日梦 出处:https://www.cnblogs.com/ZhuChangwu/p/13965480.html本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。好文要顶关注我收藏该文赐我白日梦
关注 - 23
粉丝 - 98+加关注 0 0
« 上一篇: 面试题:聊聊什么是慢查、如何监控?如何排查? posted @ 2020-11-12 18:39 赐我白日梦 阅读(103) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
发表评论 【福利】注册AWS账号,立享12个月免费套餐 编辑预览 7693b08a-a8f6-49f3-f45a-08d88556cc23 Markdown 帮助自动补全 不改了退出 订阅评论 [Ctrl+Enter快捷键提交]
首页 新闻 博问 专区 闪存 班级 【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】博客园 & 陌上花开HIMMR 给单身的程序员小哥哥助力脱单啦~
【推荐】博客园 & 示说网联合策划,AI实战系列公开课第二期
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【福利】AWS携手博客园为开发者送免费套餐与抵扣券
【推荐】 阿里云折扣价格返场,错过再等一年
公告
昵称: 赐我白日梦
园龄: 2年1个月
粉丝: 98
关注: 23 +加关注
最新随笔1.面试题:对NotNull字段插入Null值 有啥现象?2.面试题:聊聊什么是慢查、如何监控?如何排查?3.谈谈MySQL的基数统计4.《为研发同学定制的MySQL面试指南》-- 连载中5.实战Docker容器调度6.深度长文整理-Redis进阶7.Docker网络8.Golang SQL连接池梳理9.Ghost-无损DDL10.Golang 网络编程积分与排名 积分 - 125083 排名 - 6230 随笔分类 (176) Ajax(1) Bootstrap(1) Docker(5) Dubbo(4) ElasticSearch(4) Ghost(1) Git(1) Golang(8) Html(3) Java(6) Java web(2) Jmeter(1) Js(5) JVM(1) JWT(1) Linux(12) MongoDB(2) Mybatis(5) Mysql(10) Neo4j(1) Netty(14) Nginx(1) NIO(4) Oracle(4) Python(1) RabbitMQ(1) Redis(3) RPC(3) Spring(7) Spring Boot(2) Spring Cloud(2) Spring Data JPA(2) Spring Mvc(4) Spring Security(1) Thymeleaf(1) VUE(7) Web Socket(1) Webpack(1) Zookeeper(10) 编码集(1) 并发编程(12) 短信模块(1) 计算机网络(2) 计算机组成原理(1) 爬虫(2) 设计模式(7) 数据结构与算法(7) 阅读排行榜 1. 深入理解 NioEventLoopGroup初始化(5751) 2. 深入理解 Netty-Channel架构体系(5459) 3. Nginx安装及配置反向代理(5110) 4. 深入理解 ZK集群如何保证数据一致性(4529) 5. 深入理解 Netty编码流程及WriteAndFlush()的实现(4158) 6. JS 实现动态轮播图(4088) 7. 如何提高web应用的吞吐量(3925) 8. 干货 Elasticsearch 知识点整理 一(3296) 9. JWT+Interceptor实现无状态登录和鉴权(3166) 10. 深入理解 Netty-新连接接入(2506) 推荐排行榜 1. 干货 Elasticsearch 知识点整理 一(27) 2. 如何提高web应用的吞吐量(14) 3. 深度长文整理-Redis进阶(13) 4. 后端小白的VUE入门笔记, 进阶篇(12) 5. 后端小白的VUE入门笔记, 前端高能慎入(11) 6. JWT+Interceptor实现无状态登录和鉴权(5) 7. 后端小白的Bootstrap笔记(4) 8. 深入理解 ZK集群的Leader选举(4) 9. WebSocket+Netty构建web聊天程序(4) 10. Golang SQL连接池梳理(3)
Copyright © 2020 赐我白日梦
Powered by .NET 5.0.0 on Kubernetes Powered By Cnblogs | Theme Silence v2.0.0
CONTENTS✕0.0.1. 一、 推荐阅读 0.0.2. 二、从一个实验开始 0.0.3. 三、sql 的执行模式 0.0.4. 四、做几个小实验 0.0.5. 五、需要你了解的几个 sql mode 0.0.6. 六、结语 ✕"Buy Me A Coffee"返回顶部阅读目录关注博主