mysql中NULL值

mysql中NULL值表示"没有值",它跟空字符串""是不同的

例如,执行下面两个插入记录的语句:

复制代码
insert into test_table (description) values (null);
insert into test_table (description) values ('');

执行以后,查看表的值,下面第2和第3行是执行前面两条语句生成的:

可以看到,两条插入语句都在表中description列插入了值,但是第1条语句插入的是NULL,第2条语句插入的是空字符串。

有时候可能会有误解:认为一个列定义为NOT NULL,就不能插入空字符串。

其实,一个列定义为NOT NULL,是可以插入空字符串的,因为空字符串是NOT NULL。

下面语句测试空字符串('')和NULL:

要测试NULL,用 IS NULL和IS NOT NULL操作符

例如:

不能使用数学比较符号来测试NULL

不能使用数学比较符号,例如>、<、或者<>来测试NULL。因为,任何的数学比较符号和NULL相比的结果都是NULL,因此从这个比较中,得不到任何有意义的结果。

例如:

在MySQL,0或者NULL代表false,其它值代表true

在MySQL,0或者NULL代表false,其它值代表true。

相关推荐
lzhdim1 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室1 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)1 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
敲个大西瓜2 小时前
Java项目常用数据归档方式
mysql
YOU OU2 小时前
Spring IoC&DI
java·数据库·spring
Muscleheng3 小时前
Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错
数据库·postgresql
kyriewen4 小时前
面试官让我查各部门工资最高的员工,我用AI三秒写出窗口函数,他愣了
后端·mysql·面试
小码工作室4 小时前
使用 HAVING 进行 MySQL 集合筛选
mysql
罗超驿4 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
jran-4 小时前
Redis 命令
数据库·redis·缓存