数据库教程-SQL Is Null运算符

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中,我们将介绍NULL概念,并演示如何使用SQL IS NULLIS NOT NULL运算符来测试表达式是否为NULL

1. 什么是NULL?

NULL在SQL中很特殊。 NULL表示数据未知的值,可以简单理解为表示:不适用不存在的值。 换句话说,NULL表示数据库中缺少数据。

例如,如果员工没有任何电话号码,可以将其存储为空字符串。 但是,如果在插入员工记录时不知道他的电话号码,我们将使用未知电话号码的NULL值。

NULL值是特殊的,因为任何与NULL值的比较都不会导致truefalse,但在第三个逻辑结果中:未知

以下语句返回null值。

SELECT NULL = 5; 

NULL值甚至不等于自身,如以下语句所示。

SELECT NULL = NULL; 

在此示例中,结果为NULL值。

不能使用比较运算符的等于(=)将值与NULL值进行比较。 例如,以下语句将不会产生正确的结果。

SELECT     employee_id, first_name, last_name, phone_number FROM     employees WHERE     phone_number = NULL; 

2. IS NULL 和 IS NOT NULL 运算符

要确定表达式或列的值是否为NULL,请使用IS NULL运算符,如下所示:

expression IS NULL; 

如果表达式的结果为NULL,则IS NULL运算符返回true; 否则它返回false。要检查表达式或列是否不为NULL,请使用IS NOT运算符:

expression IS NOT NULL; 

如果表达式的值为NULL,则IS NOT NULL返回false; 否则它返回true;

3. SQL IS NULL和IS NOT NULL示例

在这些示例中,我们将使用示例数据库中的employees表进行演示。

mysql> DESC employees; +---------------+--------------+------+-----+---------+----------------+ | Field         | Type         | Null | Key | Default | Extra          | +---------------+--------------+------+-----+---------+----------------+ | employee_id   | int(11)      | NO   | PRI | NULL    | auto_increment | | first_name    | varchar(20)  | YES  |     | NULL    |                | | last_name     | varchar(25)  | NO   |     | NULL    |                | | email         | varchar(100) | NO   |     | NULL    |                | | phone_number  | varchar(20)  | YES  |     | NULL    |                | | hire_date     | date         | NO   |     | NULL    |                | | job_id        | int(11)      | NO   | MUL | NULL    |                | | salary        | decimal(8,2) | NO   |     | NULL    |                | | manager_id    | int(11)      | YES  | MUL | NULL    |                | | department_id | int(11)      | YES  | MUL | NULL    |                | +---------------+--------------+------+-----+---------+----------------+ 10 rows in set 

要查找没有电话号码的所有员工,请使用IS NULL运算符,如下所示:

SQL Is Null运算符

要查找具有电话号码的所有员工,请使用IS NOT NULL,如以下语句所示:

SELECT     employee_id,     first_name,     last_name,     phone_number FROM     employees WHERE     phone_number IS NOT NULL; 

执行上面查询语句,得到以下结果 –

+-------------+------------+-----------+----------------+ | employee_id | first_name | last_name | phone_number   | +-------------+------------+-----------+----------------+ |         100 | Steven     | Lee       | 0532-86011111  | |         101 | Neena      | Wong      | 0551-4243311   | |         102 | Lex        | Liang     | 0571-87622362  | |         103 | Alexander  | Lee       | 020-95105105   | |         104 | Bruce      | Wong      | 0371-68356666  | |         105 | David      | Liang     | 0512-67513131  | |         106 | Valli      | Chen      | 0535-95105175  | |         107 | Diana      | Chen      | 025-95105105   | |         108 | Nancy      | Chen      | 0531-86012520  | |         109 | Daniel     | Chen      | 021-8008207890 | ... ... |         201 | Michael    | Zhou      | 010-67237328   | |         202 | Pat        | Zhou      | 0755-28114518  | |         203 | Susan      | Zhou      | 0755-83587526  | |         204 | Hermann    | Wu        | 0513-83512816  | |         205 | Shelley    | Wu        | 0898-31686222  | |         206 | William    | Wu        | 022-26144822   | +-------------+------------+-----------+----------------+ 34 rows in set 

通过本小节的学习,现在您应该了解NULL概念并知道如何使用SQL IS NULL运算符来检查值是否为NULL值。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 sql教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/24/数据库教程-sql-is-null运算符/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注