首页 > 编程笔记 > MySQL笔记 阅读:7

MySQL IS NULL和IS NOT NULL的用法(附带实例)

创建数据表的时候,设计者可以指定某列中是否包含空值(NULL)。空值不同于 0,也不同于空字符串。空值一般表示数据未知、不适用或将在以后添加。

MySQL IS NULL子句的用法

在 SELECT 语句中,使用 IS NULL 子句可以查询某字段内容为空的记录。

下面在数据库中创建数据表 customers,该表中包含了本章中需要用到的数据,SQL 语句如下:
CREATE TABLE customers
(
c_id          int        NOT NULL AUTO_INCREMENT,
c_name        char(50)   NOT NULL,
c_address     char(50)   NULL,
c_city        char(50)   NULL,
c_zip         char(10)   NULL,
c_contact     char(50)   NULL,
c_email       char(255)  NULL,
PRIMARY KEY (c_id)
);

为了演示,需要插入数据,SQL 语句如下:
INSERT INTO customers(c_id, c_name, c_address, c_city, c_zip,  c_contact, c_email)
VALUES(10001, 'RedHook', '200 Street ', 'Tianjin',  '300000',  'LiMing', 'LMing@163.com'),
(10002, 'Stars', '333 Fromage Lane', 'Dalian', '116000',  'Zhangbo', 'Jerry@hotmail.com'),
(10003, 'Netbhood', '1 Sunny Place', 'Qingdao',  '266000', 'LuoCong', NULL),
(10004, 'JOTO', '829 Riverside Drive', 'Haikou',  '570000',  'YangShan', 'sam@hotmail.com');

【实例 1】查询表 customers 中 c_email 为空的记录的 c_id、c_name 和 c_email 字段值,SQL 语句如下:
SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NULL;
查询结果如下:
+-------+----------+---------+
| c_id  | c_name   | c_email |
+-------+----------+---------+
| 10003 | Netbhood | NULL    |
+-------+----------+---------+
可以看到,表 customers 中有一条字段 c_email 的值为 NULL 的记录。

MySQL IS NOT NULL子句的用法

与 IS NULL 相反的是 IS NOT NULL,该关键字查找字段不为空的记录。

【实例 2】查询表 customers 中 c_email 不为空的记录的 c_id、c_name 和 c_email 字段值,SQL 语句如下:
SELECT c_id, c_name,c_email FROM customers WHERE c_email IS NOT NULL;
查询结果如下:
+------------+----------+------------------+
| c_id       | c_name   | c_email          |
+------------+----------+------------------+
| 10001      | RedHook  | LMing@163.com    |
| 10002      | Stars    | Jerry@hotmail.com|
| 10004      | JOTO     | sam@hotmail.com  |
+------------+----------+------------------+
可以看到,查询出来的记录的 c_email 字段都不为空值。

相关文章