SQL NULL
1. 定义
维基百科:空值
(null 或 NULL)是结构化语言中使用的特殊,是对未知或缺失的一种标识。
编程之家解释:空值常用于表示某个字段为空;一般地,如果某个字段可以为空,该字段认为NULL
。
2. 前言
本小节,我们将一起学习 NULL
。
NULL 是 中颇为特殊的值,它是所有可以为空字段的认值,它只能由运算符 IS
来比较。
3. 介绍
NULL 常出现在以下两种情况:
如字段是可以为空,且未被插入和更新,则该字段认为 NULL。
显式的设置字段为 NULL。
我们以例子来说明 NULL:
新建imooc_user
表,并向其中插入一些数据,如下:
DROP TABLE IF EXISTS imooc_user;CREATE TABLE imooc_user( username varchar(), age int);INSERT INTO imooc_user(username) VALUES('jerry');INSERT INTO imooc_user(username,age) VALUES('pedro', ), ('mike', NULL);
操作成功后结果如下:
+----------+--------+ | username | age | +----------+--------+ | jerry | <null> | | pedro | 23 | | mike | <null> | +----------+--------+
从结果中可以得到:
jerry 在插入时,并未显式指定 age 的值,插入后 age 值为NULL。
mike 在插入时,显式的指定 age 值为NULL,插入后 age 值也为NULL。
4. NULL比较
NULL 比较特殊,无法跟其他值一样通过 =、> 等运算符进行比较;NULL 必须使用IS
和IS NOT
进行比较。
IS NULL
表示字段为空。
IS NOT NULL
表示字段非空。
请书写 语句,imooc_user
表中age
字段非空的。
分析:
使用 Select 搭配 Where,且条件为 age 非空,即age IS NOT NULL
。
语句:
整理可得语句如下:
SELECT username FROM imooc_user WHERE age IS NOT NULL;
结果如下:
+----------+ | username | +----------+ | pedro | +----------+
请书写 语句,imooc_user
表中age
字段为空的。
分析:
使用 Select 搭配 Where,且条件为 age 为空,即age IS NULL
。
语句:
整理可得语句如下:
SELECT username FROM imooc_user WHERE age IS NULL;
结果如下:
+----------+ | username | +----------+ | jerry | | mike | +----------+
5. 小结
NULL与其它值不同,因此处理方式也不同,需要搭配IS
使用。
NULL与0
值也不是等价的,它们无法比较。