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 là NULL
SELECT column_names FROM table_name WHERE column_name IS NULL;
Câu lệnh kiểm tra không là 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 là 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 |