NULL vừa là giá trị và vừa là từ khóa trong SQL. Trong đó, giá trị NULL đại diện cho dữ liệu không xác định hoặc không có dữ liệu. Còn từ khóa NULL được sử dụng trong các câu lệnh SQL để kiểm tra, so sánh hoặc thao tác với các giá trị NULL trong bảng.
Vậy cú pháp và cách dùng của câu lệnh NULL và NOT NULL trong SQL như nào? Cùng Gitiho tìm hiểu trong bài viết ngày hôm nay nhé!
Nói một cách đơn giản, NULL chỉ đơn giản là một giá trị giữ chỗ cho dữ liệu không tồn tại. Khi thực hiện các thao tác chèn vào bảng trong cơ sở dữ liệu, sẽ có đôi lúc các trường giá trị không khả dụng.
Để đáp ứng với yêu cầu của hệ thống quản lý cơ sở dữ liệu, MySQL sử dụng NULL như là một giá trị giữ chỗ cho giá trị thật sự chưa được gửi lên. Ảnh chụp màn hình bên dưới cho thấy giá trị NULL hiển thị như thế nào trong cơ sở dữ liệu.
Trước hết chúng ta sẽ xem xét một số điều cơ bản về giá trị NULL trước khi đi sâu vào tìm hiểu nó:
Toán tử logic NOT được sử dụng để kiểm tra các điều kiện Boolean và trả về kết quả là true nếu như điều kiện sai. Toán tử NOT sẽ trả về kết quả là false nếu như điều kiện được kiểm tra là đúng.
Điều kiện | Kết quả toán tử NOT |
True | False |
False | True |
Có một số trường hợp mà chúng ta sẽ phải thực hiện tính toán dựa trên tập kết quả truy vấn và trả về giá trị. Thực hiện bất kỳ các phép tính toán học nào trên cột có giá trị NULL sẽ trả về kết quả là NULL. Để tránh những trường hợp như vậy xảy ra, chúng ta có thể sử dụng mệnh đề NOT NULL để giới hạn kết quả trên dữ liệu hoạt động.
Giả sử rằng chúng ta muốn tạo một bảng mới với với các trường nhất định mà luôn phải được cung cấp các giá trị khi chèn những hàng mới vào bảng. Chúng ta có thể sử dụng mệnh đề NOT NULL trên một trường nhất định khi tạo bảng.
NULL có thể còn được sử dụng như một từ khóa khi thực thi các toán tử Boolean trên các giá trị có bao gồm NULL. Từ khóa “IS/NOT” được sử dụng cùng với từ NULL cho những mục đích này. Cú pháp đơn giản khi sử dụng NULL như một từ khóa như sau:
CREATE TABLE table_name (
column_name1 data_type [NULL | NOT NULL],
column_name2 data_type [NULL | NOT NULL],
...
);
Trong đó:
Ví dụ 1: Tìm toàn bộ bản ghi có dữ liệu trống trong cột Postal Code trong bảng Geographic..
Để thực hiện yêu cầu trên, bạn hãy viết công thức sau:
select * from Geographic
where PostalCode is NULL
Cho chạy công thức trên, chúng ta sẽ thu được kết quả sau:
Ví dụ 2: Tìm toàn bộ bản ghi có dữ liệu trống ở một trong hai cột Postal Code và StateProvinceCode trong bảng Geographic.
Ở ví dụ này, chúng ta sẽ sử dụng thêm với từ khóa OR trong SQL để kết hợp 2 điều kiện trong cùng một câu lệnh như sau:
select * from Geographic
where (StateProvinceCode IS NULL) OR (PostalCode IS NULL)
Cho chạy công thức, chúng ta sẽ thu được toàn bộ các bản ghi chứa các giá trị NULL ở cả hai trường StateProvinceCode và PostalCode.
Tương tự, để tìm các bản ghi không chứa dữ liệu trống (NULL) thì bạn hãy thay thế nó bằng từ khóa NOT NULL trong câu lệnh nhé.
Trên đây là hướng dẫn về NULL và NOT NULL trong SQL. Hy vọng nó sẽ giúp ích cho quá trình truy vấn dữ liệu trong SQL.
Ngoài ra bạn có thể truy cập ngay https://gitiho.com/ để tìm hiểu thêm nhiều các khóa học hay về tin học văn phòng: Excel, Power Point, lập trình VBA, lập trình C#, SQL, thiết kế đồ họa… Có rất nhiều ưu đãi hấp dẫn đang chờ bạn.
Các bạn có thể tham khảo thêm các bài viết khác về cách sử dụng MySQL:
Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.
Đăng ký học thử để trải nghiệm ngay hôm nay!