SQL IS NOT NULL查询

SQL IS NOT NULL查询

在SQL中, IS NOT NULL 查询用于获取包含非空值的所有行。

在关系数据库模型的背景下,NULL值表示未知值。如果我们从理论上考虑,NULL值仍然指向一个未知的值,但这个未知的值不等于零值或包含空字段的字段。

SQL中的空值

SQL中的 NULL 是表示缺失值的术语。表中的NULL值是一个看起来为空白的字段值。

具有NULL值的字段是一个没有值的字段。很重要的一点是要理解NULL值与零值或包含空格的字段是不同的。对于检查空值,我们可以使用两个基本运算符:

  • IS NULL
  • IS NOT NULL

在SQL中使用IS NOT NULL

使用 IS NOT NULL 运算符可以获取包含非空值的列中的行。当使用时,如果列包含非空值或者位于IS NOT NULL之前的表达式不为空,则条件成立。

语法

以下是IS NOT NULL的语法:

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

示例

让我们考虑一个名为“Car”的表,我们将在数据库中创建并且其中包含一些字段中的空值。执行以下查询来创建一个表

SQL> CREATE TABLE Car (  
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   OWNER  CHAR (25),
   PRICE   DECIMAL (18, 2) NOT NULL,      
   PRIMARY KEY (ID)
);

现在我们将使用以下查询来填充上面创建的表格。

SQL> INSERT INTO Car (ID,NAME,OWNER,PRICE)
VALUES (1, 'Bmw', 'SRK', 2000.00 );

INSERT INTO Car (ID,NAME,OWNER,PRICE)
VALUES (2, 'Audi', 'RAM', 3000.00 );

INSERT INTO Car (ID,NAME,OWNER,PRICE)
VALUES (3, 'RX100', NULL, 4000.00 );

INSERT INTO Car (ID,NAME,OWNER,PRICE)
VALUES (4, 'Benz', NULL, 5000.00 );

验证

要检查表是否已经创建,请执行下面的查询。

SQL> SELECT * FROM Car;

执行此代码后,会显示如下所示的表格:

+----+-------+-------+---------+
| ID | NAME  | OWNER | PRICE   |
+----+-------+-------+---------+
|  1 | Bmw   | SRK   | 2000.00 |
|  2 | Audi  | RAM   | 3000.00 |
|  3 | RX100 | NULL  | 4000.00 |
|  4 | Benz  | NULL  | 5000.00 |
+----+-------+-------+---------+

使用SELECT语句的IS NOT NULL

我们可以使用IS NOT NULL运算符和SELECT语句来根据某个列是否包含非NULL值来筛选行。

示例

在以下示例中,我们将展示如何使用IS NOT NULL条件来选择具有非NULL值的行。

SQL> SELECT *
FROM Car
WHERE OWNER IS NOT NULL;

输出

执行以上查询后,将生成以下输出 –

+----+------+-------+---------+
| ID | NAME | OWNER | PRICE   |
+----+------+-------+---------+
|  1 | Bmw  | SRK   | 2000.00 |
|  2 | Audi | RAM   | 3000.00 |
+----+------+-------+---------+

IS NOT NULL与COUNT()函数

我们还可以在SQL中使用IS NOT NULL运算符和COUNT()函数来计算特定列中不包含NULL值的行数。这个函数与SQL SELECT命令一起使用。

语法

COUNT()函数的语法如下:

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

示例

为了确定有多少行具有非空值,使用COUNT()方法和IS NOT NULL。执行下面显示的以下查询:

SQL> SELECT COUNT(*)
FROM CAR
WHERE OWNER IS NOT NULL;

输出

执行上述查询后,将生成以下输出结果 −

+----------+
| COUNT(*) |
+----------+
|        2 |
+----------+

IS NOT NULL与DELETE语句

我们还可以使用IS NOT NULL运算符与DELETE语句一起删除特定列中不包含NULL值的所有行。

示例

在以下示例中,我们将使用IS NOT NULL运算符和DELETE语句来删除包含非NULL值的行。执行下面的查询来删除非NULL值。

SQL> DELETE FROM Car
WHERE OWNER IS NOT NULL;

验证

检查表中非空值是否被删除,执行以下查询:

SQL> SELECT * FROM Car;

在执行上述查询时,将会生成如下输出-

+----+-------+-------+---------+
| ID | NAME  | OWNER | PRICE   |
+----+-------+-------+---------+
|  3 | RX100 | NULL  | 4000.00 |
|  4 | Benz  | NULL  | 5000.00 |
+----+-------+-------+---------+

使用UPDATE语句的IS NOT NULL

我们可以在SQL中使用UPDATE语句和”IS NOT NULL”运算符来更新包含特定列中非空值的所有行的列值。

示例

在这种情况下,我们将检查如何在更新语句中使用”is not null”。考虑我们数据库中的以下表”Car”并运行以下查询以查看如何使用更新语句。

SQL> UPDATE Car
SET OWNER = 'DHRUVA'
WHERE OWNER IS NOT NULL;

验证

运行以下查询以验证表是否已更新-

SQL> SELECT * FROM Car;

在执行上述查询时,它将生成如下所示的输出:

+----+-------+--------+---------+
| ID | NAME  | OWNER  | PRICE   |
+----+-------+--------+---------+
|  1 | Bmw   | DHRUVA | 2000.00 |
|  2 | Audi  | DHRUVA | 3000.00 |
|  3 | RX100 | NULL   | 4000.00 |
|  4 | Benz  | NULL   | 5000.00 |
+----+-------+--------+---------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程