Bài đăng nổi bật

MySQL IS NULL & IS KHÔNG NULL Hướng dẫn với các ví dụTrong SQL Null vừa là giá trị vừa là từ khóa. Trước tiên hãy xem xét giá trị NULL 

NULL  - giá trị

Nói một cách đơn giản, NULL chỉ đơn giản là một người giữ chỗ cho dữ liệu không tồn tại. Khi thực hiện các thao tác chèn trên các bảng, những lúc mà giá trị chưa xác định thì ta sử dụng NULL. 
Để đáp ứng các yêu cầu của hệ thống quản lý cơ sở dữ liệu quan hệ thực sự, MySQL sử dụng NULL làm chủ sở hữu vị trí cho các giá trị chưa được gửi. Ảnh chụp màn hình bên dưới cho thấy giá trị NULL trông như thế nào trong cơ sở dữ liệu.
MySQL IS NULL & IS KHÔNG NULL Hướng dẫn với các ví dụ
Bây giờ chúng ta hãy xem xét một số điều cơ bản cho NULL trước khi chúng ta đi sâu vào cuộc thảo luận.
  • NULL không phải là loại dữ liệu - điều này có nghĩa là nó không được nhận dạng là "int", "date" hoặc 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 chẳng hạn, 69 + NULL = NULL.
  • Tất cả các hàm tổng hợp chỉ ảnh hưởng đến các hàng không có giá trị NULL .
Bây giờ chúng ta hãy chứng minh hàm đếm xử lý các giá trị null. Chúng ta hãy xem nội dung hiện tại của bảng thành viên-
SELECT * FROM `members`;
Thực hiện đoạn script trên cho chúng ta kết quả như sau
membership_ numberfull_ namesgenderdate_of_ birthphysical_ addresspostal_ addresscontact_ numberemail
1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm
2Janet Smith JonesFemale23-06-1980Melrose 123NULLNULLjj@fstreet.com
3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com
4Gloria WilliamsFemale14-02-19842nd Street 23NULLNULLNULL
5Leonard HofstadterMaleNULLWoodcrestNULL845738767NULL
6Sheldon CooperMaleNULLWoodcrestNULL976736763NULL
7Rajesh KoothrappaliMaleNULLWoodcrestNULL938867763NULL
8Leslie WinkleMale14-02-1984WoodcrestNULL987636553NULL
9Howard WolowitzMale24-08-1981SouthParkP.O. Box 4563987786553lwolowitz[at]email.me
Hãy đếm tất cả các thành viên đã cập nhật contact_number của họ
SELECT COUNT(contact_number)  FROM `members`;
Thực hiện các truy vấn trên cho chúng ta các kết quả sau.
COUNT(contact_number)
7
Lưu ý: Các giá trị NULL chưa được tính vào

NOT là gì?

Toán tử logic logic được sử dụng để kiểm tra các điều kiện Boolean và trả về true nếu điều kiện này là false. Toán tử NOT trả về false nếu đ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 sử dụng NOT NULL?

Sẽ có trường hợp khi chúng ta sẽ phải thực hiện tính toán trên tập kết quả truy vấn và trả về các giá trị. Thực hiện bất kỳ hoạt động số học nào trên các cột có giá trị NULL trả về kết quả null. Để tránh những tình huống như vậy xảy ra, chúng tôi có thể sử dụng mệnh đề KHÔNG NULL để giới hạn kết quả mà dữ liệu của chúng tôi hoạt động.
Giả sử rằng chúng ta muốn tạo một bảng với các trường nhất định phải luôn được cung cấp các giá trị khi chèn các hàng mới vào một 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ụ hiển thị bên dưới tạo một bảng mới chứa dữ liệu của nhân viên. Số lượng nhân viên phải luôn được cung cấp
CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);
Bây giờ chúng ta hãy thử chèn một bản ghi mới mà không chỉ định tên nhân viên và xem điều gì sẽ xảy ra.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
Thực thi đoạn mã trên trong bàn làm việc của MySQL sẽ báo lỗi sau -
MySQL IS NULL & IS KHÔNG NULL Hướng dẫn với các ví dụ

Từ khóa NULL

NULL cũng có thể được sử dụng làm từ khóa khi thực hiện các thao tác Boolean trên các giá trị bao gồm NULL. Từ khóa "IS / KHÔNG" được sử dụng cùng với từ NULL cho các mục đích đó. Cú pháp cơ bản khi null được sử dụng làm từ khóa như sau
`comlumn_name'  IS NULL
`comlumn_name' NOT NULL
ĐÂY
  • "IS NULL" là từ khóa thực hiện so sánh Boolean. Nó trả về true nếu giá trị được cung cấp là NULL và false nếu giá trị được cung cấp không phải là NULL.
  • "KHÔNG NULL" là từ khóa thực hiện so sánh Boolean. Nó trả về true nếu giá trị được cung cấp không phải là NULL và false nếu giá trị được cung cấp là null.
Bây giờ chúng ta hãy xem một ví dụ thực tế sử dụng từ khóa KHÔNG NULL để loại bỏ tất cả các giá trị cột có giá trị null.
Tiếp tục với ví dụ trên, giả sử chúng ta cần chi tiết về các thành viên có số liên lạc không phải là null. Chúng tôi có thể thực hiện một truy vấn như
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
Thực hiện truy vấn trên chỉ cung cấp các bản ghi trong đó số liên lạc không phải là null.
Giả sử chúng tôi muốn hồ sơ thành viên trong đó số liên lạc là null. Chúng tôi có thể sử dụng truy vấn sau đây
SELECT * FROM `members` WHERE contact_number IS NULL;
 
Thực hiện truy vấn trên cung cấp chi tiết thành viên có số liên lạc là NULL
membership_ numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontact_ numberemail
1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm
3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com
5Leonard HofstadterMaleNULLWoodcrestNULL845738767NULL
6Sheldon CooperMaleNULLWoodcrestNULL976736763NULL
7Rajesh KoothrappaliMaleNULLWoodcrestNULL938867763NULL
8Leslie WinkleMale14-02-1984WoodcrestNULL987636553NULL
9Howard WolowitzMale24-08-1981SouthParkP.O. Box 4563987786553lwolowitz[at]email.me

So sánh giá trị null

Ba giá trị logic - thực hiện các thao tác Boolean trong các điều kiện liên quan đến NULL có thể trả về "Unknown", "True" or "False".
Ví dụ: sử dụng từ khóa "IS NULL" khi thực hiện các hoạt động so sánh liên quan đến NULL có thể trả về giá trị True hoặc  . Sử dụng các toán tử so sánh khác trả về "Unknown" (NULL).
Giả sử bạn so sánh số năm với 5
SELECT 5 =5;
Kết quả truy vấn là 1 có nghĩa là ĐÚNG
5 = 5
1
Hãy thực hiện thao tác tương tự với NULL
SELECT NULL = NULL;
 
NULL = NULL
NULL
Hãy xem xét một ví dụ khác
SELECT 5> 5;
5> 5
0
Kết quả truy vấn là 0 có nghĩa là SAI
Hãy xem xét ví dụ tương tự bằng cách sử dụng NULL
SELECT NULL > NULL;
 
NULL> NULL
NULL
Cho phép sử dụng từ khóa IS NULL
SELECT 5 LÀ NULL;
5 GIỜ
0
Kết quả truy vấn là 0, là FALSE
SELECT NULL IS NULL;
NULL IS NULL
1
Kết quả truy vấn là 1 là TRUE

Tóm lược

  • NULL là một trình giữ chỗ giá trị cho các trường bảng tùy chọn.
  • MySQL xử lý giá trị NULL khác với các loại dữ liệu khác. Các giá trị NULL khi được sử dụng trong một điều kiện sẽ đánh giá giá trị Boolean sai.
  • Hoạt động logic KHÔNG được sử dụng để kiểm tra các giá trị Boolean và đánh giá là đúng nếu giá trị Boolean là sai và sai nếu giá trị Boolean là đúng.
  • Mệnh đề NOT NULL được sử dụng để loại bỏ các giá trị NULL khỏi tập kết quả
  • Thực hiện các phép toán số học trên các giá trị NULL luôn trả về kết quả NULL.
  • Các toán tử so sánh như [, =, v.v.] không thể được sử dụng để so sánh các giá trị NULL.

Post a Comment

Mới hơn Cũ hơn