MySQL中的空值 Null 和空字符‘‘
目录
- 1. 空值 `Null` 和空字符 `''`
- 2. 空值 `Null` 和空字符 `''` 在查询方式上的对比
- 2.1. 创建 `SQL` 脚本
- 2.2. 查询 `username` 列为空字符串 `''` 的所有数据
- 2.3. 查询 `username` 列为空值 `null` 的所有数据
- 2.3.1. 错误 `SQL`
- 2.3.2. 正确 `SQL`
- 2.4. 查询 `username` 列不为空值 `null` 的所有数据
- 2.4.1. 错误 `SQL`
- 2.4.2. 正确 `SQL`
- 3. 空值 `Null` 和空字符 `''` 在 `count()` 函数查询的对比
- 3.1. 查询 `username` 列数据总数
- 4. `MySQL` 中的比较运算符
1. 空值 Null
和空字符 ''
日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到 MySQL
中的 NULL
和空字符 ''
,二者表面上看都是空,其实存在一些差异的
- 空值
NULL
的长度是NULL
,不确定占用了多少存储空间,它是占用存储空间的 - 空字符串
''
的长度是0
,是不占用空间的
通俗的讲:空字符串 ''
就像是一个真空状态的杯子,什么都没有;而空值 NULL
就像是一个装满空气的杯子,是有东西的。二者虽然看起来都是空的、透明的,但是有着本质的区别
2. 空值 Null
和空字符 ''
在查询方式上的对比
2.1. 创建 SQL
脚本
CREATE TABLE `test_1` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) DEFAULT NULL,`password` varchar(255) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;--插入数据
INSERT INTO test_1 VALUES(1,'李斯','111111');
INSERT INTO test_1 VALUES(2,'','');
INSERT INTO test_1 VALUES(3,null,'');
INSERT INTO test_1 VALUES(4,null,1);
表中的数据如下,注意 null
值与 ''
值
2.2. 查询 username
列为空字符串 ''
的所有数据
2.3. 查询 username
列为空值 null
的所有数据
2.3.1. 错误 SQL
2.3.2. 正确 SQL
2.4. 查询 username
列不为空值 null
的所有数据
2.4.1. 错误 SQL
2.4.2. 正确 SQL
- 比较字符
=,>,< ,<>
,!=
都不能用于查询比较null
值,如果需要查询空值null
,必须使用is null
或is not null
- 空值
''
可以使用=, !=, <, >
等算术运算符来查询的
3. 空值 Null
和空字符 ''
在 count()
函数查询的对比
3.1. 查询 username
列数据总数
- 使用
count()
的时候,空值null
并不会被当成有效值去统计的 - 空字符串
''
是会被count()
函数所统计的
4. MySQL
中的比较运算符
运算符 | 含义 |
---|---|
=
|
等于 |
<=>
|
安全等于,可以比较 null
|
<> 或 !=
|
不等于 |
>=
|
大于等于 |
<=
|
小于等于 |
>
|
大于 |
<
|
小于 |
IS NULL
|
判断一个值是否为 null
|
IS NOT NULL
|
判断一个值是否不为 null
|
MySQL中的空值 Null 和空字符‘‘相关推荐
- mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?
展开全部 空值是不占用空间的,MySQL中的NULL其实是占用空间的. 不过在MySQL数据库中执行62616964757a686964616fe78988e69d8331333363396466SQ ...
- MySQL中处理空值时要小心两个个陷阱
[IT168 专稿]MySQL数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是 ...
- Mysql中的 not null
创建医生信息表 doctor_info1 .doctor_info2 ,区别是 doctor_info1 中doctor_name 加上not null 约束 CREATE TABLE `doctor ...
- MySQL中的 空值(null)和空字符(‘‘)
目录 长度和判空 ifnull 字段定义为not null,查询的时候也可能返回null 建议 参考 空值(null)和空字符('')是两个比较容易混淆的概念. 本文对两者的区别做简单梳理. 长度和判 ...
- mysql中的钱null,mysql 中null总结
====================== 相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 1.我字段类型是not null,为什么我可以插入空值 2.为毛n ...
- 从图表中的断线简聊DAX中的空值(null)
之前有个小伙伴做Report,发现他弄得折线图不是连续的,出现了断线的情况,看起来很是奇怪,在某些应该是0值的位置处折线图就断掉了.尝试调整了Report的各种设置也没有解决.这是怎么回事呢? 既然界 ...
- mysql count or null_为什么在对带有条件的行进行计数时,为什么在MySQL中需要“ OR NULL”...
有关MySQL的COUNT()聚合函数的问题一直不时出现.我想对为什么它按原样工作有一些解释. 当我开始使用MySQL时,我很快了解到,如果条件最后还包含OR NULL,则它的COUNT(condit ...
- MySQL中IN对NULL的处理
先说结论,MySQL中NULL是不参与计算的,对NULL进行计算,只可以使用预设的IS NULL和IS NOT NULL来操作 student表中,有三条数据,id分别是1.2.3 SELECT* F ...
- mysql 中is not null 和 !=null的区别
今天做定时任务,需要用到一个mysql查询 于是我就写: sqlcondition=" and fplsh!=null and iskp='2'" 却发现发挥的list为空 很是诧 ...
最新文章
- 观点|重磅出炉!29页《业内观点:机器人行业的未来》
- 高级运维工程师的打怪升级之路
- 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...
- 基于epoll实现一个IO多路复用的回声服务器
- java 多态性 接口_Java中的多态性和接口
- 二分图之匈牙利算法模版
- go 声明二维数组_一篇文章了解Go语言中数组Arrays的使用内幕
- Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0
- ros 发布信息频率_ROS入门笔记二基础
- Python源码深度解析—对象的行为和多态性
- 范华专栏 | 投资中的统计陷阱
- keil5.24 +注册机 下载
- 年度最流行英文字体20款
- Windows10安装Matlab 2018b教程
- Fastdfs读取文件内容
- vscode中java打包exe
- kubuntu18.04安装搜狗输入法
- CNVD-2020-10487(CVE-2020-1938)tomcat ajp 文件读取漏洞
- 我的第一篇博客--成长的第一站
- 目标检测之DarkNet-DarkNet源码解读<二>训练篇