當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。