Xử lý các giá trị NULL là cần thiết trong khi phân tích dữ liệu. Hãy cùng Quantrimang.com học cách đếm các giá trị trống và không trống trong một cột nhé!
Làm việc với những giá trị NULL trong SQL là thử thách thường gặp với mỗi nhà phân tích dữ liệu và chuyên gia database. Điều này đặc biệt đúng khi xử lý NULL vì nó có thể rắc rối và khó hiểu.
Tuy nhiên, điều quan trọng cần hiểu rằng những giá trị NULL là gì và ý nghĩa của chúng cho bạn tổng quan dữ liệu chính xác và toàn diện.
Giá trị SQL NULL là gì?
Một NULL có nghĩa là không có giá trị, không phải số 0 hay khoảng cách.
Vì thế, những toán tử so sánh truyền thống như =, <, >, và <> không thể được dùng trên nó. Tuy nhiên, nếu đã sử dụng, kết quả sẽ là UNKNOWN.
Hãy coi giá trị NULL như một trường trống ở bên trái trong khi tạo bản ghi. Bạn có thể tạo một bảng và chèn một cột mới mà không cần thêm giá trị. Vì thế, trường đó sẽ là một giá trị NULL. Các giá trị NULL cũng có thể được chèn vào các cột của kiểu dữ liệu bất kỳ.
Để minh họa cho điều này, bạn nên tạo bảng SQL mới bằng cú pháp dưới đây:
CREATE TABLE Employee (
FirstName VARCHAR(50),
LastName VARCHAR(50),
PhoneNum VARCHAR(15),
Salary FLOAT
);
INSERT INTO Employee (FirstName, LastName, PhoneNum, Salary)
VALUES
('Maxwell', 'Ayomide', '812-345-6789', 150000.00),
('David', 'Tosin', NULL, 450000.00),
('Eben', 'Teniola', '912-345-6789', 590000.00),
('Kenneth', 'Olisa', '809-456-8732', NULL),
('Esther', 'Oge', NULL, NULL);
Bạn cũng có thể update giá trị NULL trong bảng bằng lệnh SQL thân thiện với người mới bắt đầu - lệnh UPDATE. Để làm việc này, hãy dùng cú pháp bên dưới:
UPDATE Employee
SET FirstName = 'Esther'
WHERE Salary = 200000;
Để xem kết quả, chạy:
SELECT * FROM Employee;
Những giá trị SQL NULL hữu ích khi nào?
Giá trị NULL có thể được dùng trong các tình huống khác nhau trong SQL:
- Khi dữ liệu không có sẵn hoặc chưa được biết đến tại thời điểm nhập dữ liệu.
- Khi dữ liệu không áp dụng cho thực thể được đề cập. Ví dụ, trong một khảo sát, câu hỏi yêu cầu người tham gia tích vào box khảo sát họ có con hay chưa có thể có một số giá trị NULL.
Điều kiện SQL IS NULL là gì?
Lệnh SQL IS NULL là một trong số lệnh SQL quan trọng mà mọi lập trình viên đều cần biết. Lệnh này được dùng để kiểm tra những giá trị NULL và được dùng tốt nhất khi bạn tìm kiếm giá trị NULL. Lệnh này sẽ trả về tất cả các hàng NULL trong cột được xác định ở truy vấn của bạn.
SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NULL;
Truy vấn này sẽ trả về tất cả giá trị NULL trong cột PhoneNum.
Điều kiện SQL IS NOT NULL là gì?
Lệnh SQL IS NOT NULL đối lập ới SQL IS NULL.
Lệnh này kiểm tra các giá trị không trống (giá trị NOT NULL). Vì thế, nó sẽ luôn trả về tất cả các hàng trong một cột với giá trị và bao gồm tất cả giá trị NULL trong cột được xác định ở truy vấn của bạn.
SELECT FirstName, LastName, PhoneNum
FROM Employee
WHERE PhoneNum IS NOT NULL;
Truy vấn này sẽ trả về tất cả giá trị NOT NULL trong cột PhoneNum.
Cách đếm các giá trị SQL NULL trong một cột
Lệnh COUNT() được dùng để đếm. Nó là một lệnh hữu ích khi phân tích dữ liệu trong bảng SQL và làm việc với các truy vấn phụ & bảng tạm.
Dùng truy vấn này để đếm số giá trị NULL trong cột PhoneNum.
SELECT COUNT(*) AS [Total Number of NULL]
FROM Employee
WHERE PhoneNum IS NULL
Bạn sẽ nhận được kết quả:
Cách đếm giá trị NOT NULL trong một cột
Dùng lệnh NOT NULL để đếm số giá trị không phải NULL trong cột PhoneNum.
SELECT COUNT(PhoneNum) AS [Total Number of Non-NULL Values]
FROM Employee
WHERE PhoneNum IS NOT NULL
Kết quả:
Bạn cũng có thể dùng truy vấn này để đặt kết quả vào trong một bảng.
SELECT SUM(CASE WHEN PhoneNum is null THEN 1 ELSE 0 END)
AS [Number Of Null Values],
COUNT(PhoneNum) AS [Number Of Non-Null Values]
FROM Employee
Ở truy vấn này, lệnh CASE và IS NULL được dùng để phân loại NULL trong cột PhoneNum là 1. Giá trị này được thêm và giữ trong cột Number Of Null Values.
Trên đây là cách đếm giá trị SQL NULL và NOT Null trong một cột. Hi vọng bài viết hữu ích với các bạn.