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.
Bạn đang xem: Giá trị null là gì
Để đá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ó :
NULL không phải là một kiểu dữ liệu – điều này có nghĩa là nó không được nhận dạng như là một kiểu số tự nhiên “int”, kiểu dữ liệu ngày “date” hay bất kỳ loại dữ liệu được xác định nào khác.Các phép toán số học liên quan đến NULL luôn trả về NULL. Ví dụ: 69 + NULL = NULL.Tất cả các hàm tổng chỉ ảnh hưởng đến các hàng không có giá trị NULLBâ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 |
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.
Xem thêm: Tiểu Sử Về Nam Ca Sĩ Sơn Tùng Sinh Năm Bao Nhiêu : 1M66 Hay 1M70 Là Chính Xác?
Giá trị NOT NULLGiả 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 NULLNULL 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 đó:
“IS NULL” là từ khóa thực hiện so sánh Boolean. Nó trả về true nếu giá trị cung cấp là NULL và trả về false nếu giá trị cung cấp không phải là NULL“NOT NULL” là từ khóa thực hiện so sánh Boolean. Nó trả về true nếu giá trị cung cấp không phải là NULL và trả về false nếu giá trị cung cấp là NULLHã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ị NULLBa 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)