Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mysql中的Null值

Mysql中的Null值

作者头像
DH镔
发布于 2019-12-19 13:14:43
发布于 2019-12-19 13:14:43
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

Mysql中的Null值

在大对数编程语言中,逻辑表达式的值只有两种:True,False。但是在关系型数据库中的逻辑表达式并非两种,而是三值逻辑的表达式(True、False、Unknown)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select null = 1;

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+----------+
| null = 1 |
+----------+
|     NULL |
+----------+
1 row in set (0.01 sec)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select null = null;

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+-------------+
| null = null |
+-------------+
|        NULL |
+-------------+
1 row in set (0.00 sec)

出乎意料的是null = 1返回的是null,而null = null返回的也是null,而不是1。对于返回值是null的情况,应该将它视为unknown的情况,即表示未知。在不同的语句下unknown表示不同的值

ON

unknown被视为False

GROUP BY

group by会把null值分到一组

ORDER BY

order by会把null值排列在一起

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【MySQL初阶】表的增删查改(create、retrieve、update、delete)
这里明明给 chinese + math + english 取了别名,怎么在where条件中不能用呢? 这和 select 语句的执行顺序有关:
_小羊_
2025/05/17
2820
【MySQL初阶】表的增删查改(create、retrieve、update、delete)
MySQL8.0 JSON函数之搜索JSON值(五)
之前的几篇文章介绍了JSON数据类型,相信大家已经对JSON有了一定的了解,上面一篇文章介绍了《MySQL8.0 JSON函数之创建与返回JSON属性(四)》JSON函数的使用;本节中的函数对JSON值执行搜索或比较操作,以从中提取数据;
SEian.G
2021/07/07
8K0
MySQL 之单表查询(精简笔记)
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一,该笔记用于生产环境快速查阅.
王 瑞
2022/12/28
4.9K0
你真的会玩SQL吗?让人晕头转向的三值逻辑
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接、外连接 你真的会玩SQL吗?三范式、数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节点的方法 你真的会玩SQL吗?让人晕头转向的三值逻辑 你真的会玩SQL吗?EXISTS和IN之间的区别 你真的会玩SQL吗?无处不在的子查询 你真的会玩SQL吗?Case也疯狂 你真的会玩SQL吗?表表达式,排名函数 你真的会玩SQL吗?简单的 数据修改 你真的会玩SQL吗?你所不知道的 数据聚合 你真的会玩S
欢醉
2018/01/22
7930
你真的会玩SQL吗?让人晕头转向的三值逻辑
听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)
排序的字段可以根据具体需求进行选择,没有限制。排序的关键字可以使用 ASC 或者DESC。ASC 是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略。SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC 方式进行排序。DESC 是按降序方式进行排列。当然 ORDER BY 前面也可以使用 WHERE 子句对查询结果进一步过滤。
不吃小白菜
2020/09/03
4.1K0
听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)
记 MySQL SQL表达式计算中一个问题的定位和修复
MySQL中有一个内建函数,名为ADDTIME,其作用是官方文档见:ADDTIME官方说明。其中关于第二个参数的说明如下:
felixxdu
2019/02/25
6140
【MySQL基础篇重点】六、表的增删查改
​ 一般来说,数据库的基本操作叫做 CRUD,是一种常见的编程术语,它代表了四个基本的数据库操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete)。这些操作用于对数据库中的数据进行管理。
利刃大大
2025/05/21
1200
【MySQL基础篇重点】六、表的增删查改
【MySQL】表数据的CRUD操作详解
CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)
用户11316056
2025/02/26
1200
【MySQL】表数据的CRUD操作详解
算法工程师-SQL进阶:温柔的陷阱-NULL
我们以往遇到的编程语言基本都是基于二值逻辑的,即逻辑真值只有true和false两个。而 SQL 语言则采用一种特殊的逻辑体系——三值逻辑,逻辑真值除了true和false,还有第三个值unknow,即 “不确定”。三值逻辑经常会给数据分析带来一些意想不到的难题,即使是资深的工程师,有时候也很难避免。
小萌哥
2020/07/21
8790
算法工程师-SQL进阶:温柔的陷阱-NULL
神奇的 SQL 之温柔的陷阱 → 三值逻辑 与 NULL !
    一个中国小孩参加国外的脱口秀节目,因为语言不通,于是找了一个翻译。     主持人问:“Who is your favorite singer ?”     翻译:”你最喜欢哪个歌手啊 ?”     小孩兴奋地回答:”Michael Jackson”     翻译转身对主持人说:”迈克尔-杰克逊”     主持人看着翻译:"你说什么 ?"
青石路
2019/08/13
1.4K0
神奇的 SQL 之温柔的陷阱 → 三值逻辑 与 NULL !
MySQL数据库(八):表记录的基本操作(增删改查)
一、增 insert:增加(条件一条新纪录,默认新添加的记录都添加在已有记录的末尾) 1.格式: 1.1添加新纪录时,只给记录中的某几个字段赋值 insert into 表名(字段名1,字段名2...)values(值1,值2....); *值得类型是字符的话需要用双引号引起来 1.2 添加新纪录时,给所有记录中的所有字段赋值 insert into 表名 values(值1,值2....); *值得类型是字符的话需要用双引号引起来 *值与字段的类型一定匹配 2.例子 1.1 给表中插入一条记录
行 者
2018/03/26
5.4K0
MySQL数据库(八):表记录的基本操作(增删改查)
NOT IN子查询中出现NULL值对结果的影响你注意到了吗
* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 前言 开发人员写的SQL语句中经常会用到in,exists,not in,not exists 这类子查询,通常,含in、exists的子查询称为半连接(semijoin),含not in、 not exists的子查询被称之为反连接,经常会有技术人员来评论in 与exists 效率孰高孰低的问题,我在SQL优化工作中也经常对这类子查询做优化改写,比如半连接改为内连接,反连接改为外连接等,哪个效率高是要根据执行计划做出判断的,本文不是为了讨论效率问题,是要提醒一点:not in子查询的结果集含NULL值时,会导致整个语句结果集返回空,这可能造成与SQL语句书写初衷不符。
GreatSQL社区
2024/03/25
1930
NOT IN子查询中出现NULL值对结果的影响你注意到了吗
MySQL基本查询
MySQL中的基本查询,即CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)
二肥是只大懒蓝猫
2023/10/13
3860
MySQL NULL 值处理--Java免费学习
我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
用户1289394
2021/07/09
1.6K0
Semi-join使用条件,派生表优化 (3)—mysql基于规则优化(四十六)
前面说了子查询里有no/any/all不能用limit,group by,order by等,他会被查询优化器优化掉,子查询可能会物化转成内连接semi-join查询,物化就是会吧子查询看做一个表,如果数据太大,超过系统变量tmp_table_size,则会在磁盘里创建b+树的临时表,如果比较小,则会创建内存里hash树的临时表,之后会物化表转连接,但如果直接转where 和on,则可能会出现子查询多条的情况,我们的真实需求并不需要多条,所以有了semi-join。
用户9919783
2022/07/26
6990
MySQL分区表对NULL值的处理
MySQL的分区表没有禁止NULL值作为分区表达式的值,无论它是列值还是用户提供的表达式的值,需要记住NULL值不是数字。MySQL的分区实现中将NULL视为小于任何非NULL值,与order by类似。
老叶茶馆
2023/02/18
1.6K0
MySQL分区表对NULL值的处理
为什么MySQL不建议使用NULL作为列默认值?
今天来分享一道美团高频面试题,5 分钟搞懂“为什么 MySQL 不建议使用 NULL 作为列默认值?”。
一行Java
2023/09/04
6340
为什么MySQL不建议使用NULL作为列默认值?
mysql中分组排序_oracle先分组后排序
​ 窗口函数(window functions),也被称为 “开窗函数”,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可对数据库数据进行实时分析处理。它是数据库的标准功能之一,主流的数据库比如Oracle,PostgreSQL都支持窗口函数功能,MySQL 直到 8.0 版本才开始支持窗口函数。
全栈程序员站长
2022/11/10
8.1K0
【MySQL】表的基本查询
插入数据: 指定values左侧的列属性实现指定列插入 省略values左侧的列属性就是全列插入,如果是自增的属性,可插可不插。
南桥
2024/12/03
6630
【MySQL】表的基本查询
Vc数据库编程基础MySql数据库的表查询功能
  不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有.
IBinary
2019/05/25
9.9K0
推荐阅读
相关推荐
【MySQL初阶】表的增删查改(create、retrieve、update、delete)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验