当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


SQL IS NOT NULL用法及代码示例


在 SQL 中,不为空运算符是逻辑运算符。它的应用正好与IS NULL 运算符相反。与 IS NULL 运算符不同,该运算符返回真的,如果该值不是 NULL 值。它通常与 WHERE 子句一起使用来过滤表数据。它过滤掉数据并将其与指定列具有的记录分开NULL值。由于这个原因,它在数据可视化中起着至关重要的作用。

在这篇文章中,我们将学习各种应用不为空运算符及其各自的解释和示例。我们将涵盖 IS NOT NULL 运算符的所有用例。我们将看到如何在一些常见场景中明智地使用这个运算符。我们还将探讨如何使用其他 SQL 函数来实现此运算符。

SQL IS NOT NULL 运算符

SQL 不为空运算符是逻辑运算符。我们使用此运算符来检查行在特定列中是否具有非空值。简而言之,我们使用此运算符来检测 NOT NULL 值。如果检查列的特定行具有 NULL 值,则此运算符将返回FALSE。该运算符的作用与 SQL 中的 IS NULL 运算符相反。该运算符通常作用于 WHERE 子句。简而言之,我们使用 IS NOT NULL 运算符来选择那些存在一些数据的行。

用法:

SELECT *

FROM table_name

WHERE column_name IS NOT NULL;

IS NOT NULL 运算符示例

在开始示例之前,首先,我们需要在数据库中创建一个表。让我们在数据库中创建一个表

表名:极客之极客

列:姓名、级别、课程

询问:

CREATE TABLE geeksforgeeks(
id varchar(100) PRIMARY KEY,
name varchar(100),
rank int,
courses int
);

让我们在表中插入一些值并显示它们。

询问:

INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('vishu01','Vishu',01,10);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('sumit02','sumit',02,NULL);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('neeraj03','Neeraj',NULL,08);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('aayush04','Aayush',03,NULL);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('vivek05','Vivek',04,06);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('harsh06','Harsh',NULL,05);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('raaj07','Raaj',05,NULL);

--Displaying Data

SELECT * FROM geeksforgeeks;

输出:

IS_NOT_NULL_tablet

表格 - geeksforgeeks

我们创建了一个表并向其中插入了虚拟数据。现在让我们开始实施IS NOT NULL 运算符。

示例 1:使用 SELECT 语句时 IS NOT NULL

让我们显示课程列包含除 a 之外的值的所有记录NULL值。

询问:

SELECT * FROM geeksforgeeks
WHERE courses IS NOT NULL;

输出:

ISNOTNULL_OUTPUT01

输出 - 01

我们可以观察到,显示的所有记录中的课程都包含除 NULL 值之外的某些整数值。

NOTE: We applied IS NOT NULL Operator on courses column. Therefore it only filters out NOT NULL values from courses column , not from the other columns, like rank.

示例 2:COUNT() 为 IS NOT NULL

在此示例中,我们将计算记录中的 NOT NULL 值,其中记录的两个列(即排名和课程)中都包含 NOT NULL。

询问:

SELECT count(*) as non_empty_records FROM geeksforgeeks
WHERE courses IS NOT NULL and rank IS NOT NULL;

输出:

ISNOTNULL_OUTPUT02

输出 - 2.1

我们可以清楚地发现只有两行,这两列(即课程和排名)都保存 NOT NULL 值。我们也可以通过以下查询简单地显示这些记录。

询问:

SELECT * FROM geeksforgeeks
WHERE courses IS NOT NULL and rank IS NOT NULL;

输出:

ISNOTNULL_OUTPUT03

输出 - 2.2

因此,这是唯一在两个列(即课程和排名)中都保存 NOT NULL 值的记录。

示例 3:带有 UPDATE 语句的 IS NOT NULL

假设我们必须将每个成员的等级加 1。现在在这种情况下,将 NULL 值加 1 是没有意义的。因此我们必须避免 NULL 值。在此示例中,我们也将使用 UPDATE 语句。

询问:

UPDATE geeksforgeeks
SET rank = rank + 1
WHERE rank IS NOT NULL;

输出:

ISNOTNULL_OUTPUT04

输出 - 03

我们可以发现排名列的先前表值和排名列的当前表值之间的差异。我们可以看到 NOT NULL 列的排名增加了 1。

示例 4:带有 DELETE 语句的 IS NOT NULL

让我们从表中删除课程列具有以下内容的所有记录NULL值。在此示例中,我们将使用DELETE声明也。

询问:

DELETE FROM geeksforgeeks
WHERE courses IS NOT NULL;

输出:

ISNOTNULL_OUTPUT05

输出 - 04

从上图中,我们可以得出结论,courses 列的所有 NOT NULL 值都被删除。因此,只剩下三个记录,其中课程列具有 NULL 值。

结论

IS NOT NULL 运算符是 SQL 中的逻辑运算符。该运算符用于过滤掉表数据。这意味着 IS NOT NULL 运算符用于分隔表的 NULL 值和 NOT NULL 值。在处理数据可视化时,这非常有用。简而言之,它的作用与IS NULL。我们可以借助该运算符过滤掉 NOT NULL 值。在本文中,我们看到了 IS NOT NULL 运算符的简要用例,其中包含清晰简洁的示例及其各自的解释。


相关用法


注:本文由纯净天空筛选整理自vishuvaishnav3001大神的英文原创作品 SQL IS NOT NULL Operator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。