Trong MySQL, NULL vừa là giá trị và vừa là từ khóa.
Giá trị NULL
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ó :
Bây giờ chúng ta sẽ đi chứng minh rằng các hàm đếm xử lý các giá trị NULL. Bạn có thể tải dữ liệu “myflixdb” tại đây để thực hiện trong MySQL:
https://drive.google.com/uc?export=download&id=0B_vqvT0ovzHccjhtdGlrZ0MtZ0k
Thực hiện câu truy vấn sau để xem nội dung hiện tại của bảng members trong “myflixdb”:
Kết quả sẽ hiện ra như sau:
Đếm số lượng tất cả các thành viên đã cập nhật số liên lạc của họ:
Thực hiện truy vấn trên cho ra kết quả sau:
Lưu ý: Giá trị NULL đã không được tính vào kết quả trên.
NOT là gì?
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 |
Tại sao chúng ta lại sử dụng NOT NULL?
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á trị NOT NULL
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.
Ví dụ bên dưới tạo một bảng mới chứa dữ liệu của nhân viên. Mã số nhân viên (employee_number) luôn phải được cung cấp.
Bây giờ chúng ta sẽ thử chèn một bản ghi mới mà không chỉ định mã số nhân viên và xem thử chuyện gì xảy ra:
Thực thi câu lệnh trên trong MySQL sẽ hiển thị lỗi sau:
Từ khóa NULL
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:
Trong đó:
Hãy xem xét một ví dụ sử dụng từ khóa NOT NULL để loại bỏ tất cả cột có giá trị là NULL
Giả sử chúng ta cần chi tiết về những thành viên có số liên lạc không phải là NULL. Thực hiện câu truy vấn sau:
Thực hiện câu lệnh trên sẽ cho ra các bản ghi trong đó số liên lạc không phải là NULL.
Trong trường hợp chúng ta muốn hồ sơ các thành viên có số liên lạc là NULL. Có thể sử dụng truy vấn sau:
Kết quả sẽ hiện ra trong MySQL:
So sánh các giá trị NULL
Ba giá trị logic – thực hiện các toán tử Boolean trong các điều kiện liên quan đến NULL có thể trả về “Unknown”, “True” hoặc “False”.
Ví dụ, sử dụng từ khóa “IS NULL” khi thực hiện các toán tử so sánh liên quan đến NULL có thể trả về true hoặc false. Sử dụng những toán tử so sánh không liên quan đến NULL trả về “Unknown”(NULL)
Giả sử bạn đang so sánh 5 với 5:
Kết quả truy vấn là 1 có nghĩa là TRUE
Làm điều này tương tự với NULL:
Hãy xem xét các ví dụ khác:
Kết quả trả về là 0 có nghĩa là FALSE.
Làm tương tự với NULL:
Lần này chúng ta sử dụng từ khóa IS NULL:
Kết quả trả về là 0 có nghĩa là FALSE.
Kết quả truy vấn là 1 có nghĩa là TRUE
Tổng kết
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:
Hướng dẫn sử dụng câu lệnh SELECT trong MySQL qua các ví dụ
Nội dung liên quan