1. Giá trị NULL là gì?

Trường có giá trị NULL là trường không tồn tại giá trị. Trong câu lệnh INSERT hay UPDATE những trường (hay cột) bị bỏ trống dữ liệu sẽ gây ra các giá trị NULL – nghĩa là trường đó không tồn tại giá trị.

Để kiểm tra một trường có giá trị NULL hay không? Ta cần sử dụng toán tử IS NULL hoặc toán tử IS NOT NULL

Ta không thể dùng các toán tử so sánh, hay toán tử gán đề kiểm tra giá trị NULL. Ví dụ như:  =, < hoặc <>.

Câu lệnh kiểm tra NULL

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

Câu lệnh kiểm tra không NULL

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

Lưu ý: Giá trị NULL khác với giá trị 0 hoặc trường chứa khoảng trắng. Trường có giá trị NULL là trường đã bị bỏ trống trong quá trình tạo bản ghi!

2. Ví dụ kiểm tra giá trị NULL

Dưới đây là bảng KhachHang có các trường như: ID, TenKH, DiaChi, ThanhPho, SoDienThoai trong bảng này có một số giá trị NULL trong cột DiaChi

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Ha Noi 0888999888
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Để kiểm tra các khách hàng có địa chỉ chưa được thêm vào trong bảng KhachHang – nghĩa là cột DiaChi NULL ta có thể sử dụng kiểm tra NULL như sau:

SELECT * FROM KhachHang 
WHERE DiaChi IS NULL;

Kết quả sau khi thực thi sẽ như sau:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Ha Noi 0888999888
5 Nguyen Van E Hai Phong 0858585858

Nếu cần lấy ra các khác hàng đã có tồn tại địa chỉ ở trong bảng KhachHang – nghĩa là cột DiaChi không NULL ta cần sử dụng cú pháp như sau:

SELECT * FROM KhachHang 
WHERE DiaChi IS NOT NULL;

Kết quả sau khi kểm tra như sau:

ID TenKH DiaChi ThanhPho SoDienThoai
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838