MySQL中的空值 Null 和空字符‘‘

本文详细探讨了MySQL数据库中空值NULL和空字符''的区别,包括它们在存储空间、查询方式和`COUNT()`函数统计上的不同。通过创建表格和插入数据,展示了如何正确查询NULL和''。强调在比较运算中,NULL不能直接用常规运算符,需使用`IS NULL`或`IS NOT NULL`。同时,总结了MySQL的比较运算符及其在查询中的应用。
摘要由CSDN通过智能技术生成

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值