Hướng dẫn null trong mysql - null in mysql
Tìm hiểu giá trị NULL trong MySQL1) Giá trị NULL là gì, từ đâu mà có !?- Khi chúng ta chèn một hàng mới vào bên trong cái bảng, nếu chúng ta không xác định đầy đủ giá trị cho tất cả các cột thì những cột bị bỏ trống sẽ nhận giá trị NULL. Show - Giá trị NULL có thể tạm hiểu là ô đó không có dữ liệu gì cả (nó không phải là giá trị FALSE, không phải giá trị zero, cũng không phải là chuỗi rỗng) - Tôi có một cái bảng Student như bên dưới:
Nữ INSERT INTO Student (ID, Name, Age) VALUES (4, "Đường Tam Tạng", 35); để thêm một hàng mới vào bên trong cái bảng Student thì khi đó cái bảng Student sẽ trở thành:
- Khi tôi sử dụng lệnh INSERT INTO Student (ID, Name, Age) VALUES (4, "Đường Tam Tạng", 35); để thêm một hàng mới vào bên trong cái bảng Student thì khi đó cái bảng Student sẽ trở thành: Đường Tạm TạngNULL = mà thay vào đó là phải sử dụng toán tử IS NULL. ⛔ Hai cột Gener & City của sinh viên "Đường Tam Tạng" bị nhận giá trị NULL là bởi vì tôi không gán giá trị cho chúng khi chèn hàng vào bảng.!= mà thay vào đó là phải sử dụng toán tử IS NOT NULL. 2) Cách truy xuất những hàng có chứa giá trị NULL
Nữ Bạc Liêu * FROM Student WHERE City IS NULL; - Khi tôi sử dụng lệnh INSERT INTO Student (ID, Name, Age) VALUES (4, "Đường Tam Tạng", 35); để thêm một hàng mới vào bên trong cái bảng Student thì khi đó cái bảng Student sẽ trở thành:
- Khi tôi sử dụng lệnh INSERT INTO Student (ID, Name, Age) VALUES (4, "Đường Tam Tạng", 35); để thêm một hàng mới vào bên trong cái bảng Student thì khi đó cái bảng Student sẽ trở thành: Đường Tạm Tạng * FROM Student WHERE City IS NOT NULL; - Khi tôi sử dụng lệnh INSERT INTO Student (ID, Name, Age) VALUES (4, "Đường Tam Tạng", 35); để thêm một hàng mới vào bên trong cái bảng Student thì khi đó cái bảng Student sẽ trở thành:
Bạn đã thấy cách lệnh SELECT cùng với mệnh đề WHERE trong SQL lấy dữ liệu từ bảng MySQL, nhưng khi chúng ta cố gắng cung cấp một điều kiện so sánh giá trị trường hoặc giá trị cột với NULL, nó làm việc không chính xác.NULL, nó làm việc không chính xác. Để xử lý những tình huống như vậy, MySQL cung cấp 3 toán tử:
Các điều kiện liên quan tới NULL là khá đặc biệt. Bạn không thể sử dụng = NULL hoặc != NULL để tìm giá trị NULL trong các cột. Những so sánh như thế luôn luôn thất bại bởi vì nó là không thể để nói rằng có hay không chúng là true. Ngay cả NULL = NULl cũng thất bại. Để tìm các cột là hoặc không là NULL, sử dụng toán tử IS NULL hoặc IS NOT NULL trong MySQL. Sử dụng giá trị NULL trong MySQLGiả sử tạo một bảng hocphik59 trong cơ sở dữ liệu sinhvien. Bảng này gồm hai cột là ten và hocphi (bạn chú ý rằng trong khi tạo bảng ở trường học phí ta đã không ràng buộc điều kiện NOT NULL và khi chèn dữ liệu mình đã để trống hai trường).hocphik59 trong cơ sở dữ liệu sinhvien. Bảng này gồm hai cột là ten và hocphi (bạn chú ý rằng trong khi tạo bảng ở trường học phí ta đã không ràng buộc điều kiện NOT NULL và khi chèn dữ liệu mình đã để trống hai trường). //Chon co so du lieu USE sinhvien; //Tao bang hocphik59 CREATE TABLE hocphik59 ( ten VARCHAR(255) NOT NULL, hocphi INT ); //Chen du lieu vao bang hocphik59 INSERT INTO hocphik59 (ten, hocphi) VALUES ('Nam', 4000000); INSERT INTO hocphik59 (ten, hocphi) VALUES ('Thanh', NULL); INSERT INTO hocphik59 (ten, hocphi) VALUES ('Cao', NULL); INSERT INTO hocphik59 (ten, hocphi) VALUES ('Huong', 3000000); Quảng cáo Sau đó, sử dụng lệnh SELECT * FROM hocphik59; sẽ cho kết quả:SELECT * FROM hocphik59; sẽ cho kết quả: SELECT * FROM hocphik59; //ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Nam | 4000000 | | Thanh | NULL | | Cao | NULL | | Huong | 3000000 | +--------+-------------+ Bây giờ, nếu bạn sử dụng = và != với cột hocphi, bạn sẽ thấy rằng chúng không làm việc với các giá trị NULL, và sẽ không có kết quả được trả về: = và != với cột hocphi, bạn sẽ thấy rằng chúng không làm việc với các giá trị NULL, và sẽ không có kết quả được trả về: SELECT * FROM hocphik59 WHERE hocphi = NULL; 0 row(s) returned mysql> SELECT * FROM hocphik59 WHERE hocphi != NULL; 0 row(s) returned Để tìm các bản ghi mà cột hocphi là hoặc không là NULL, các truy vấn nên được viết như sau:hocphi là hoặc không là NULL, các truy vấn nên được viết như sau: SELECT * FROM hocphik59 WHERE hocphi IS NULL; //Ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Thanh | NULL | | Cao | NULL | +--------+-------------+ SELECT * FROM hocphik59 WHERE hocphi IS NOT NULL; //Ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Nam | 4000000 | | Huong | 3000000 | +--------+-------------+ Xử lý giá trị NULL trong PHP ScriptBạn có thể sử dụng điều kiện if…else để chuẩn bị một truy vấn dựa trên giá trị NULL.if…else để chuẩn bị một truy vấn dựa trên giá trị NULL. Quảng cáo Ví dụVí dụ sau lấy hocphi ra ngoài và sau đó so sánh nó với giá trị có sẵn trong bảng. Ở đây mình sử dụng hàm isset($hocphi) để kiểm tra xem biến hocphi đã có giá trị (khác null) hay chưa, nếu đã được thiết lập thì trả về giá trị True, nếu không là False.isset($hocphi) để kiểm tra xem biến hocphi đã có giá trị (khác null) hay chưa, nếu đã được thiết lập thì trả về giá trị True, nếu không là False. = $hocphi'; } else { $sql = 'SELECT ten, hocphi FROM hocphik59 WHERE hocphi IS $hocphi'; } mysql_select_db('sinhvien'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Khong the lay du lieu: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Ten :{$row['ten']} Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS. Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube: Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi. Các bài học MySQL phổ biến khác tại VietJack::
Bài viết liên quan
|