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。

相关推荐
山峰哥4 小时前
查询优化案例:从慢查询到闪电般的查询速度
数据库·sql·性能优化·编辑器·深度优先
杨云龙UP4 小时前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
微学AI5 小时前
一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL
数据库·sql
2401_884563245 小时前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
haixingtianxinghai5 小时前
Redis真的是单线程吗?
数据库·redis·缓存
FirstFrost --sy6 小时前
MySQL复合查询
数据库·mysql
imuliuliang6 小时前
MySQL的底层原理与架构
数据库·mysql·架构
尽兴-6 小时前
Redis7 底层数据结构解析
数据结构·数据库·缓存·redis7
m0_730115116 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
qq_410194296 小时前
SQL语句性能优化
数据库·sql·性能优化