MySQL có coi chuỗi rỗng là NULL không?
Tóm lược. trong hướng dẫn này, bạn sẽ học cách làm việc với các giá trị 5 của MySQL. Ngoài ra, bạn sẽ tìm hiểu một số hàm hữu ích để xử lý các giá trị 5 một cách hiệu quả Giới thiệu về MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 giá trịTrong MySQL, giá trị 5 có nghĩa là không xác định. Một giá trị 5 khác 0 ( 0) hoặc một chuỗi rỗng 1 Một giá trị 5 không bằng bất cứ thứ gì, kể cả chính nó. Nếu bạn so sánh một giá trị 5 với một giá trị 5 khác hoặc bất kỳ giá trị nào khác, kết quả sẽ là 5 vì giá trị của từng giá trị 5 không xác định Nói chung, bạn sử dụng giá trị 5 để chỉ ra rằng dữ liệu bị thiếu, không xác định hoặc không áp dụng được. Ví dụ: số điện thoại của một khách hàng tiềm năng có thể là 5 và có thể được thêm vào sau Khi bạn tạo một bảng, bạn có thể chỉ định xem một cột có chấp nhận các giá trị 5 hay không bằng cách sử dụng ràng buộc 0 Ví dụ, câu lệnh sau tạo bảng 1
Trong bảng 1 này, cột 3 là cột khóa chính, do đó, nó không chấp nhận bất kỳ giá trị 5 nào Các cột 5, 6 và 7 sử dụng ràng buộc 8, do đó, bạn không thể chèn bất kỳ giá trị 5 nào vào các cột này, trong khi các cột 0 và 1 chấp nhận giá trị NULL Bạn có thể sử dụng giá trị 5 trong câu lệnh 3 để xác định rằng dữ liệu bị thiếu. Ví dụ, câu lệnh sau chèn một hàng vào bảng 1. Vì số điện thoại bị thiếu nên giá trị 5 được sử dụng
Vì giá trị mặc định của cột email là 5 nên bạn có thể lược bỏ email trong câu lệnh 3 như sau
Câu lệnh MySQL SELECT * FROM leads ORDER BY phone;Code language: SQL (Structured Query Language) (sql)8 trong câu lệnh SELECT * FROM leads ORDER BY phone;Code language: SQL (Structured Query Language) (sql)9Để đặt giá trị của một cột thành 5, bạn sử dụng toán tử gán ( 1). Ví dụ: để cập nhật số điện thoại của 2 thành 5, bạn sử dụng câu lệnh 9 sau đây
MySQL SELECT * FROM leads ORDER BY phone DESC;Code language: SQL (Structured Query Language) (sql)5 với INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5Nếu bạn sử dụng mệnh đề 5 để sắp xếp tập kết quả theo thứ tự tăng dần, MySQL coi các giá trị 5 thấp hơn các giá trị khác, do đó, nó sẽ hiển thị các giá trị 5 trước Câu lệnh sau sắp xếp khách hàng tiềm năng theo số điện thoại theo thứ tự tăng dần
Trong trường hợp bạn sử dụng 0, các giá trị 5 sẽ xuất hiện ở cuối tập hợp kết quả. Xem ví dụ sau.
Để kiểm tra 5 trong một truy vấn, bạn sử dụng toán tử 3 hoặc 4 trong mệnh đề 5. Ví dụ, để lấy các lead chưa cung cấp số điện thoại, bạn sử dụng toán tử 6 như sau
Bạn có thể sử dụng toán tử 7 để nhận tất cả khách hàng tiềm năng đã cung cấp địa chỉ email.
Mặc dù 5 không bằng 5 nhưng hai giá trị 5 bằng nhau trong mệnh đề 1.
Truy vấn chỉ trả về hai hàng vì các hàng có cột email là 5 được nhóm thành một. Chỉ mục MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 và SELECT * FROM leads WHERE email IS NOT NULL;Code language: SQL (Structured Query Language) (sql)4Khi bạn sử dụng ràng buộc ĐỘC ĐÁO hoặc chỉ số ĐỘC ĐÁO trên một cột, bạn có thể chèn nhiều giá trị 5 vào cột đó. Hoàn toàn ổn vì trong trường hợp này, MySQL coi các giá trị 5 là khác biệt Hãy xác minh điểm này bằng cách tạo chỉ mục 4 cho cột 1
Lưu ý rằng nếu bạn sử dụng công cụ lưu trữ BDB, MySQL coi các giá trị 5 là bằng nhau, do đó bạn không thể chèn nhiều giá trị 5 vào một cột có ràng buộc duy nhất MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 chức năngMySQL cung cấp một số chức năng hữu ích để xử lý NULL hiệu quả. 2, 3 và 4 Hàm 2 chấp nhận hai tham số. Hàm 2 trả về đối số đầu tiên nếu nó không phải là 5, ngược lại, nó trả về đối số thứ hai Ví dụ: câu lệnh sau trả về số điện thoại nếu nó không phải là 5, ngược lại, câu lệnh sau sẽ trả về 9 thay vì 5 0 Hàm 3 chấp nhận một danh sách các đối số và trả về đối số không phải NULL đầu tiên. Ví dụ: bạn có thể sử dụng hàm 3 để hiển thị thông tin liên hệ của khách hàng tiềm năng dựa trên mức độ ưu tiên của thông tin theo thứ tự sau. điện thoại, email và N/A. 1 Hàm 4 chấp nhận hai đối số. Nếu hai đối số bằng nhau, hàm 4 trả về 5. Mặt khác, nó trả về đối số đầu tiên. Hàm 4 rất hữu ích khi bạn có cả giá trị chuỗi 5 và giá trị chuỗi trống trong một cột. Ví dụ, do nhầm lẫn, bạn chèn một hàng sau vào bảng 1 2 Điện thoại là một chuỗi rỗng thay vì 5 Nếu bạn muốn lấy thông tin liên hệ của khách hàng tiềm năng, bạn sẽ nhận được một chiếc điện thoại trống thay vì email như truy vấn sau 1 Để khắc phục, bạn dùng hàm 4 để so sánh số điện thoại với chuỗi rỗng, nếu bằng nhau thì trả về 5, ngược lại thì trả về số điện thoại. 4 Trong hướng dẫn này, bạn đã học cách làm việc với MySQL 5 và cách sử dụng một số chức năng tiện dụng để xử lý 5 trong truy vấn. Chuỗi rỗng có được coi là NULL không?Chuỗi rỗng là một thể hiện của chuỗi có độ dài bằng 0, trong khi chuỗi rỗng không có giá trị gì cả . Một chuỗi rỗng được biểu thị là "". Đó là một chuỗi ký tự gồm 0 ký tự. Một chuỗi null được đại diện bởi null.
Chuỗi rỗng có được coi là NULL trong SQL không?Giá trị null thể hiện sự vắng mặt của bất kỳ đối tượng nào, trong khi chuỗi rỗng là một đối tượng thuộc loại Chuỗi không có ký tự nào . Nếu bạn thử so sánh hai cái, chúng không giống nhau.
Chuỗi rỗng có byte NULL không?Một chuỗi rỗng có một phần tử duy nhất, ký tự null, '\0' . Đó vẫn là một ký tự và chuỗi có độ dài bằng 0, nhưng nó không giống như chuỗi rỗng, không có ký tự nào cả.
Làm cách nào để chuyển đổi chuỗi rỗng thành NULL trong SQL?Bạn cần sử dụng hàm NULLIF() từ MySQL . Cú pháp như sau. CHỌN NULLIF(yourCoumnName,' ') làm anyVariableName từ yourTableName; . |