目录

  • 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 nullis not null
  • 空值 '' 可以使用 =, !=, <, > 等算术运算符来查询的

3. 空值 Null 和空字符 ''count() 函数查询的对比

3.1. 查询 username 列数据总数

  • 使用 count() 的时候,空值 null 并不会被当成有效值去统计的
  • 空字符串 '' 是会被 count() 函数所统计的

4. MySQL 中的比较运算符

运算符 含义
= 等于
<=> 安全等于,可以比较 null
<>!= 不等于
>= 大于等于
<= 小于等于
> 大于
< 小于
IS NULL 判断一个值是否为 null
IS NOT NULL 判断一个值是否不为 null

MySQL中的空值 Null 和空字符‘‘相关推荐

  1. mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?

    展开全部 空值是不占用空间的,MySQL中的NULL其实是占用空间的. 不过在MySQL数据库中执行62616964757a686964616fe78988e69d8331333363396466SQ ...

  2. MySQL中处理空值时要小心两个个陷阱

    [IT168 专稿]MySQL数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值不一定为空 空值是 ...

  3. Mysql中的 not null

    创建医生信息表 doctor_info1 .doctor_info2 ,区别是 doctor_info1 中doctor_name 加上not null 约束 CREATE TABLE `doctor ...

  4. MySQL中的 空值(null)和空字符(‘‘)

    目录 长度和判空 ifnull 字段定义为not null,查询的时候也可能返回null 建议 参考 空值(null)和空字符('')是两个比较容易混淆的概念. 本文对两者的区别做简单梳理. 长度和判 ...

  5. mysql中的钱null,mysql 中null总结

    ====================== 相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 1.我字段类型是not null,为什么我可以插入空值 2.为毛n ...

  6. 从图表中的断线简聊DAX中的空值(null)

    之前有个小伙伴做Report,发现他弄得折线图不是连续的,出现了断线的情况,看起来很是奇怪,在某些应该是0值的位置处折线图就断掉了.尝试调整了Report的各种设置也没有解决.这是怎么回事呢? 既然界 ...

  7. mysql count or null_为什么在对带有条件的行进行计数时,为什么在MySQL中需要“ OR NULL”...

    有关MySQL的COUNT()聚合函数的问题一直不时出现.我想对为什么它按原样工作有一些解释. 当我开始使用MySQL时,我很快了解到,如果条件最后还包含OR NULL,则它的COUNT(condit ...

  8. MySQL中IN对NULL的处理

    先说结论,MySQL中NULL是不参与计算的,对NULL进行计算,只可以使用预设的IS NULL和IS NOT NULL来操作 student表中,有三条数据,id分别是1.2.3 SELECT* F ...

  9. mysql 中is not null 和 !=null的区别

    今天做定时任务,需要用到一个mysql查询 于是我就写: sqlcondition=" and fplsh!=null and iskp='2'" 却发现发挥的list为空 很是诧 ...

最新文章

  1. 观点|重磅出炉!29页《业内观点:机器人行业的未来》
  2. 高级运维工程师的打怪升级之路
  3. 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...
  4. 基于epoll实现一个IO多路复用的回声服务器
  5. java 多态性 接口_Java中的多态性和接口
  6. 二分图之匈牙利算法模版
  7. go 声明二维数组_一篇文章了解Go语言中数组Arrays的使用内幕
  8. Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0
  9. ros 发布信息频率_ROS入门笔记二基础
  10. Python源码深度解析—对象的行为和多态性
  11. 范华专栏 | 投资中的统计陷阱
  12. keil5.24 +注册机 下载
  13. 年度最流行英文字体20款
  14. Windows10安装Matlab 2018b教程
  15. Fastdfs读取文件内容
  16. vscode中java打包exe
  17. kubuntu18.04安装搜狗输入法
  18. CNVD-2020-10487(CVE-2020-1938)tomcat ajp 文件读取漏洞
  19. 我的第一篇博客--成长的第一站
  20. 目标检测之DarkNet-DarkNet源码解读<二>训练篇

热门文章

  1. mybatis关联关系映射
  2. 【服务器数据恢复】raid5崩溃导致lvm信息和VXFS文件系统损坏的数据恢复案例
  3. 有限公司注册资金多少有什么区别
  4. Spring Cloud系列之Commons - 1. 背景与基础知识准备
  5. 女快递员遭投诉下跪求饶,谁让快递员和顾客“相煎太急”
  6. FMCW雷达的时域信号
  7. Axure中继器结构与原理详解
  8. SAP 在建工程转固定资产
  9. 技术解析|如何绘制密度分布图
  10. 2020美团前端笔试题