Hướng dẫn mysql select null - mysql chọn null

B.3.4.3 & nbsp; Các vấn đề có giá trị null

Khái niệm về giá trị

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 là một nguồn gây nhầm lẫn chung cho những người mới đến SQL, những người thường nghĩ rằng
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 giống như một chuỗi trống
mysql> SELECT * FROM my_table WHERE phone = NULL;
0. Đây không phải là trường hợp. Ví dụ, các câu sau đây hoàn toàn khác nhau:

mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ('');

Cả hai câu lệnh chèn một giá trị vào cột

mysql> SELECT * FROM my_table WHERE phone = NULL;
1, nhưng đầu tiên chèn giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 và thứ hai chèn một chuỗi trống. Ý nghĩa của thứ nhất có thể được coi là số điện thoại của người Viking không được biết đến và ý nghĩa của thứ hai có thể được coi là người mà người được biết là không có điện thoại, và do đó không có số điện thoại.phone number is not known and the meaning of the second can be regarded as the person is known to have no phone, and thus no phone number.

Để giúp xử lý

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8, bạn có thể sử dụng các toán tử
mysql> SELECT * FROM my_table WHERE phone = NULL;
4 và
mysql> SELECT * FROM my_table WHERE phone = NULL;
5 và hàm
mysql> SELECT * FROM my_table WHERE phone = NULL;
6.

Trong SQL, giá trị

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 không bao giờ đúng so với bất kỳ giá trị nào khác, thậm chí
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8. Một biểu thức chứa
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 luôn tạo ra giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 trừ khi có quy định khác trong tài liệu cho các toán tử và các hàm liên quan đến biểu thức. Tất cả các cột trong ví dụ sau trả về
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8:

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);

Để tìm kiếm các giá trị cột là

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8, bạn không thể sử dụng thử nghiệm
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';
3. Câu lệnh sau trả về không có hàng, vì
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';
4 không bao giờ đúng với bất kỳ biểu thức nào:

mysql> SELECT * FROM my_table WHERE phone = NULL;

Để tìm kiếm các giá trị

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8, bạn phải sử dụng thử nghiệm
mysql> SELECT * FROM my_table WHERE phone = NULL;
4. Các câu lệnh sau đây cho thấy cách tìm số điện thoại
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 và số điện thoại trống:

mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';

Xem Phần & NBSP; 3.3.4.6, Làm việc với các giá trị null, để biết thêm thông tin và ví dụ.

Bạn có thể thêm một chỉ mục trên một cột có thể có các giá trị

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 nếu bạn đang sử dụng công cụ lưu trữ
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';
9,
mysql> SELECT COUNT(*), COUNT(age) FROM person;
0 hoặc
mysql> SELECT COUNT(*), COUNT(age) FROM person;
1. Mặt khác, bạn phải khai báo một cột được lập chỉ mục
mysql> SELECT COUNT(*), COUNT(age) FROM person;
2 và bạn không thể chèn
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 vào cột.

Khi đọc dữ liệu với

mysql> SELECT COUNT(*), COUNT(age) FROM person;
4, các cột trống hoặc thiếu được cập nhật với
mysql> SELECT * FROM my_table WHERE phone = NULL;
0. Để tải giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 vào cột, hãy sử dụng
mysql> SELECT COUNT(*), COUNT(age) FROM person;
7 trong tệp dữ liệu. Từ ngữ
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 cũng có thể được sử dụng trong một số trường hợp. Xem Phần & NBSP; 13.2.7, Tuyên bố dữ liệu tải.

Khi sử dụng

mysql> SELECT COUNT(*), COUNT(age) FROM person;
9,
SELECT * FROM `members`;
0 hoặc
SELECT * FROM `members`;
1, tất cả các giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 đều được coi là bằng nhau.

Khi sử dụng

SELECT * FROM `members`;
1, các giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 được trình bày trước hoặc cuối cùng nếu bạn chỉ định
SELECT * FROM `members`;
5 để sắp xếp theo thứ tự giảm dần.

Các hàm tổng hợp (nhóm) như

SELECT * FROM `members`;
6,
SELECT * FROM `members`;
7 và
SELECT * FROM `members`;
8 bỏ qua các giá trị
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8. Ngoại lệ cho điều này là
0, đếm các hàng chứ không phải các giá trị cột riêng lẻ. Ví dụ, tuyên bố sau đây tạo ra hai tội danh. Thứ nhất là số lượng của số lượng hàng trong bảng và thứ hai là số lượng của số lượng giá trị không phải là không phải trong cột 
2:

mysql> SELECT COUNT(*), COUNT(age) FROM person;

Đối với một số loại dữ liệu, MySQL xử lý các giá trị

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 theo những cách đặc biệt. Ví dụ: nếu bạn chèn
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 vào cột số nguyên hoặc dấu phẩy động có thuộc tính
5, số tiếp theo trong chuỗi được chèn. Trong một số điều kiện nhất định, nếu bạn chèn 
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
8 vào cột
7, ngày và thời gian hiện tại được chèn; Hành vi này phụ thuộc một phần vào chế độ SQL của máy chủ (xem Phần & NBSP; 5.1.11, Máy chủ SQL Modes SQL) cũng như giá trị của biến hệ thống 
8.

Hướng dẫn mysql select null - mysql chọn null
Kết quả truy vấn là 1 là TRUETrước tiên hãy xem xét giá trị NULL 

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.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. 

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.Ả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.

Hướng dẫn mysql select null - mysql chọn null

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ả - đ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.
  • 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. liên quan đến NULL luôn trả về NULL chẳng hạn, 69 + NULL = 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.hàm tổng hợp chỉ ảnh hưởng đến các hàng không có giá trị NULL .

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 Chúng ta hãy xem nội dung hiện tại của bảng thành viên-

SELECT * FROM `members`;

NULL  - giá trị

membership_ numberfull_ namesgenderdate_of_ birthphysical_ addresspostal_ addresscontact_ numberemail
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542
2 Janet Smith Jones Female 23-06-1980 First Street Plot No 4 Private Bag Private Bag
3 0759 253 542 Janet Smith Jones 12-07-1989 Melrose 123 Private Bag 12345
4 0759 253 542 Female 14-02-1984 First Street Plot No 4 Private Bag Private Bag Private Bag
5 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 845738767 Private Bag
6 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 976736763 Private Bag
7 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 938867763 Private Bag
8 0759 253 542 Janet Smith Jones 14-02-1984 0759 253 542 Private Bag 987636553 Private Bag
9 0759 253 542 Janet Smith Jones 24-08-1981 Melrose 123 NULL 987786553 lwolowitz[at]email.me

Robert Phil

SELECT COUNT(contact_number)  FROM `members`;

Male

COUNT(contact_number)
7

3rd Street 34

Gloria Williams

2nd Street 23Toán tử NOT trả về false nếu điều kiện được kiểm tra là đúng

Leonard Hofstadter

Woodcrest

Sheldon Cooper

Rajesh Koothrappali

Leslie Winkle

Howard Wolowitz

SouthPark

P.O. Box 4563Thự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.

Hãy đếm tất cả các thành viên đã cập nhật contact_number của họ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.

Thực hiện các truy vấn trên cho chúng ta các kết quả sau.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)
);

Lưu ý: Các giá trị NULL chưa được tính vào

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

NOT là gì?

Hướng dẫn mysql select null - mysql chọn null

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ệnTừ 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

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
0

Kết quả toán tử NOT

  • True 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.
  • False 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.

False

TrueChúng tôi có thể thực hiện một truy vấn như

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
1

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.Chúng tôi có thể sử dụng truy vấn sau đây

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
2

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
membership_ numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontact_ numberemail
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542
3 0759 253 542 Janet Smith Jones 12-07-1989 Melrose 123 Private Bag 12345
5 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 845738767 Private Bag
6 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 976736763 Private Bag
7 0759 253 542 Janet Smith Jones Private Bag 0759 253 542 Private Bag 938867763 Private Bag
8 0759 253 542 Janet Smith Jones 14-02-1984 0759 253 542 Private Bag 987636553 Private Bag
9 0759 253 542 Janet Smith Jones 24-08-1981 Melrose 123 NULL 987786553 lwolowitz[at]email.me

Robert Phil

Male - 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".

3rd Street 34sử 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).

Gloria Williams

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
4

2nd Street 23

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
5

Leonard Hofstadter

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
6

Woodcrest

Sheldon Cooper

Rajesh Koothrappali

mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
7

Leslie Winkle

Howard Wolowitz

SouthPark

P.O. Box 4563

  • Hãy đếm tất cả các thành viên đã cập nhật contact_number của họ
  • Thực hiện các truy vấn trên cho chúng ta các kết quả sau.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.