Mysql 简明教程

MySQL - IS NULL Operator

MySQL 表中的 NULL 值表示其中没有(或未知)值。这些值与零或无效值不同。

在 MySQL 中,无法使用相等运算符(例如 =、< 或 <>)检查 NULL 值。相反,我们使用 IS NULL 和 IS NOT NULL(过滤非空值)运算符。

MySQL IS NULL Operator

MySQL 中的 IS NULL 运算符用于检查列中的值是否为 NULL。将 IS NULL 运算符与条件子句结合使用,可以过滤包含特定列中 NULL 值的记录。

我们还可以在 SELECT、UPDATE 和 DELETE SQL 语句中使用此运算符。

Syntax

以下是 MySQL 中 IS NULL 的语法 −

SELECT column_name1, column_name2, ...
FROM table_name
WHERE column_name IS NULL;

Example

首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表 −

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

在以下查询中,我们使用 INSERT 语句向表中插入值 −

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', NULL),
(2, 'Khilan', 25, 'Delhi', 1500.00),
(3, 'Kaushik', NULL, 'Kota', 2000.00),
(4, 'Chaitali', 25, 'Mumbai', NULL),
(5, 'Hardik', 27, 'Bhopal', 8500.00),
(6, 'Komal', NULL, 'Hyderabad', 4500.00),
(7, 'Muffy', 24, 'Indore', 10000.00);

该表创建如下 −

IS NULL with SELECT statement

MySQL IS NULL 运算符可以与 SELECT 语句结合使用,以筛选具有 NULL 值的记录。

Example

在以下查询中,我们将从 CUSTOMERS 表中返回 AGE 为 null 的所有记录。

SELECT * FROM CUSTOMERS
WHERE AGE IS NULL;

Output

执行上述查询后,它将生成如下所示的输出 −

IS NULL with COUNT() function

我们可以在 MySQL 中使用 IS NULL 运算符和 COUNT() 函数计算特定列中具有 NULL 值的记录数。

Syntax

以下是 MySQL 中 IS NULL 与 COUNT() 函数的语法 −

SELECT COUNT(column_name1, column_name2, ...)
FROM table_name
WHERE condition IS NULL;

Example

以下查询返回 CUSTOMERS 表的 ADDRESS 列中空白字段(NULL)的记录数。

SELECT COUNT(*) FROM CUSTOMERS
WHERE ADDRESS IS NULL;

Output

执行上述查询后,它将生成如下所示的输出 −

IS NULL with UPDATE statement

在 MySQL 中,我们可以将 IS NULL 运算符与 UPDATE 语句结合使用,以更新特定列中具有 NULL 值的记录。

Syntax

以下是 MySQL 中 IS NULL 运算符与 UPDATE 语句的语法 −

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE columnname1, columnname2, ... IS NULL;

Example

在以下查询中,我们正在将 SALARY 列的空白(NULL)记录更新为 9000 的值。

UPDATE CUSTOMERS
SET SALARY = 9000
WHERE SALARY IS NULL;

Verification

要检查表是否已更新,请执行 SELECT 查询以显示表。

IS NULL with DELETE statement

在 MySQL 中,我们可以将 IS NULL 运算符与 DELETE 语句结合使用,删除特定列中具有 NULL 值的记录。

Syntax

以下是在 MySQL 中使用 IS NULL 运算符和 DELETE 语句的语法 -

DELETE FROM table_name
WHERE column_name(s) IS NULL;

Example

在以下查询中,我们试图删除 CUSTOMERS 表的 ADDRESS 列中存在的空 (NULL) 记录。

DELETE FROM CUSTOMERS
WHERE AGE IS NULL;

Verification

若要查看表是否已更改,请执行 SELECT 查询以显示该表。

IS NULL Operator Using Client Program

除了使用 SQL 查询在 MySQL Server 上执行 IS NULL 运算符外,我们还可以使用客户端程序执行它。

Syntax

以下是 MySQL 表中在各种编程语言中的 IS NULL 运算符语法 -

Example

以下是该操作在各种编程语言中的实现 −