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.





Bài viết liên quan:

Cách sử dụng mệnh đề HAVING trong SQL Server để lọc các nhóm dựa trên các điều kiện được chỉ định.

Tìm hiểu mọi thứ cần biết về trigger trong SQL Server giúp bạn sử dụng trigger hiệu quả nhất.

Tìm hiểu mọi thứ bạn cần biết về function trong SQL Server: bao gồm hàm vô hướng và hàm bảng.