NULL trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về NULL và logic ba giá trị trong SQL Server. Bạn cũng sẽ tìm hiểu cách sử dụng toán tử IS NULLIS NOT NULL để kiểm tra xem giá trị có NULL hay không.

NULL và logic ba giá trị

Trong thế giới cơ sở dữ liệu, NULL được sử dụng để chỉ ra sự vắng mặt của bất kỳ giá trị dữ liệu nào. Ví dụ, tại thời điểm ghi thông tin khách hàng, email có thể không xác định, vì vậy nó được ghi lại là NULL trong cơ sở dữ liệu.

Thông thường, kết quả của một biểu thức logic là TRUE hoặc FALSE. Tuy nhiên, khi  NULL được tham gia vào đánh giá logic, kết quả là UNKNOWN. Đây được gọi là logic ba giá trị: TRUE, FALSEUNKNOWN.

Kết quả của các so sánh sau đây là UNKNOWN:

NULL = 0
NULL <> 0
NULL > 0
NULL = NULL

NULL không bằng không có gì, thậm chí NULL không bằng  NULL vì mỗi cái NULL có thể khác nhau.

Ví dụ về NULL trong SQL Server

Hãy sử dụng bảng customers trong cơ sở dữ liệu mẫu để làm ví dụ cho NULL trong SQL Server.

Bảng Customers trong cơ sở dữ liệu mẫu

Câu lệnh sau đây tìm kiếm những khách hàng không có số điện thoại trong bảng   customers:

SELECT
    customer_id,
    first_name,
    last_name,
    phone
FROM
    sales.customers
WHERE
    phone = NULL
ORDER BY
    first_name,
    last_name;

Truy vấn trên trả về một tập kết quả rỗng.

Mệnh đề WHERE trả về các bản ghi có biểu thức tìm kiếm được đánh giá là TRUE. Tuy nhiên, biểu thức WHERE phone = NULL được đánh giá là UNKNOWN.

Do đó, bạn nhận được một tập kết quả trống.

Để kiểm tra xem một giá trị có NULL hay không, bạn luôn sử dụng toán tử IS NULL.

SELECT
    customer_id,
    first_name,
    last_name,
    phone
FROM
    sales.customers
WHERE
    phone IS NULL
ORDER BY
    first_name,
    last_name;

Đây là kết quả:

IS NULL trong SQL Server

Truy vấn trả về những khách hàng không có thông tin điện thoại.

Như bạn có thể đoán, để kiểm tra xem giá trị có không NULL, bạn có thể sử dụng toán tử IS NOT NULL.

Truy vấn sau đây trả về những khách hàng có thông tin điện thoại:

SELECT
    customer_id,
    first_name,
    last_name,
    phone
FROM
    sales.customers
WHERE
    phone IS NOT NULL
ORDER BY
    first_name,
    last_name;

Đây là kết quả:

IS NOT NULL trong SQL Server

Trong hướng dẫn này, bạn đã tìm hiểu về NULL, logic ba giá trị và cách kiểm tra xem một giá trị có NULL hay không.

SQL Server
Bài Viết Liên Quan:
INTERSECT trong SQL Server
Trung Nguyen 22/11/2020
INTERSECT trong SQL Server

Tìm hiểu cách sử dụng toán tử INTERSECT trong SQL Server để trả về phần giao nhau của các tập kết quả của hai truy vấn.

EXCEPT trong SQL Server
Trung Nguyen 22/11/2020
EXCEPT trong SQL Server

Tìm hiểu cách sử dụng EXCEPT trong SQL Server để loại trừ tập kết quả của một truy vấn ra khỏi tập kết quả của một truy vấn khác.

SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z
Trung Nguyen 22/11/2020
SQL Server: Hướng dẫn subquery trong SQL Server từ A-Z

Tìm hiểu về subquery, toán tử EXISTS, ANY, ALL trong SQL Server và cách sử dụng truy vấn con để truy vấn dữ liệu.

UNION trong SQL Server
Trung Nguyen 22/11/2020
UNION trong SQL Server

Tìm hiểu cách sử dụng UNION trong SQL Server để kết hợp kết quả của hai hoặc nhiều truy vấn thành một tập kết quả duy nhất.