MySQL không phải là NULL hoặc rỗng
Thông thường, các nhà phát triển cơ sở dữ liệu và quản trị viên sử dụng Nulls, Zeroes và Empty Strings thay thế cho nhau trong các bảng cơ sở dữ liệu của họ. Điều đó thật không may, bởi vì mỗi Null, Zero và một Chuỗi trống đại diện cho một cái gì đó khác nhau trong cơ sở dữ liệu quan hệ (RDBMS). Như vậy, việc sử dụng các giá trị này không chính xác hoặc chọn sai giá trị có thể gây ra sự phân nhánh rất lớn đối với hoạt động của cơ sở dữ liệu và ứng dụng của bạn dựa trên nó. Trong blog hôm nay, chúng ta sẽ khám phá cách tận dụng tốt nhất Null, Zero và Empty String trong thiết kế cơ sở dữ liệu và sử dụng chung Show Giá trị Null có một lịch sử lâu dài trong cả cơ sở dữ liệu quan hệ và ngôn ngữ lập trình. Nó được nghĩ ra như một giá trị đặc biệt để biểu thị sự vắng mặt có chủ ý của bất kỳ giá trị nào. Như vậy, nó có thể được gán cho bất kỳ cột nullable nào. Để chỉ định một cột là nullable, chỉ cần bao gồm từ khóa NULL hoặc chỉ cần bỏ nó đi, vì các cột là nullable theo mặc định CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], .. ); Navicat đơn giản hóa rất nhiều việc tạo bảng thông qua Trình thiết kế bảng của nó. Trong Navicat, để xác định rằng một cột có thể không chứa giá trị NULL, hãy chọn hộp kiểm Not null Trong dạng xem Lưới bảng, các giá trị NULL được biểu diễn dưới dạng (Null) Về mặt ngữ nghĩa, một giá trị bị thiếu thông báo cho chúng tôi rằng chúng tôi không biết nó. Nói một cách đơn giản hơn, Null có thể có nghĩa là "???". Như chúng ta sẽ thấy ngay sau đây, đây không phải là trường hợp đối với Số 0 hoặc Chuỗi trống Giá trị của Không (0) là một số thực có ý nghĩa được chia sẻ bởi các thuật ngữ khác trên khắp thế giới, bao gồm vô nghĩa (Anh), vô nghĩa (Mỹ), không, zilch, zip, nada, scratch và goose egg. Giá trị của nó có thể được coi là "Không có gì". Xem xét một cột giới hạn tín dụng. Trong bối cảnh đó, giá trị 0. 00 sẽ chỉ ra rằng khách hàng không có tín dụng. Nếu cột là nullable, thì giá trị NULL có nghĩa là chúng tôi không biết giới hạn tín dụng của khách hàng là bao nhiêu. Trong trường hợp đầu tiên, chúng tôi biết giới hạn tín dụng của khách hàng là bao nhiêu và giới hạn đó bằng không Trong Navicat, chúng ta có thể đặt giá trị mặc định của một cột thông qua trình đơn thả xuống Mặc định Lưu ý rằng NULL là tùy chọn đầu tiên Giống như Zero, Chuỗi rỗng ("") khác với giá trị NULL ở chỗ giá trị trước ngụ ý cụ thể rằng giá trị được đặt thành trống, trong khi NULL có nghĩa là giá trị không được cung cấp hoặc không xác định. Ví dụ, hãy xem xét một cột lưu số điện thoại di động. Giá trị trống có nghĩa là người đó không có điện thoại di động, trong khi giá trị NULL có nghĩa là người đó không cung cấp số điện thoại. Đây là hai cách hiểu rất khác nhau Điều quan trọng đối với nhà phát triển và quản trị viên cơ sở dữ liệu là phải hiểu ngữ nghĩa của Nulls, Zeroes và Empty Strings vì việc sử dụng chúng không đúng cách hoặc chọn sai giá trị có thể gây ra sự phân nhánh lớn đối với hoạt động của cơ sở dữ liệu và các ứng dụng tương tác với nó Cuối cùng, các máy khách Quản trị và Phát triển Cơ sở dữ liệu tạo điều kiện làm việc với Nulls, Zeroes và Empty Strings bằng cách cung cấp trình đơn thả xuống Mặc định và bằng cách biểu thị rõ ràng Nulls trong các bảng cơ sở dữ liệu Mặc dù hầu hết các ứng dụng sẽ có một số dạng công nghệ phía máy chủ hoặc thậm chí phía máy khách có thể được sử dụng để lọc ra các kết quả truy vấn cơ sở dữ liệu có thể chứa giá trị 4 hoặc giá trị trống, nhưng việc sử dụng ngôn ngữ khác và gánh nặng thực thi mã bổ sung đó thường tốn kém hơn cho Thay vào đó, bên dưới chúng ta sẽ khám phá ngắn gọn cách sử dụng chính công cụ MySQL để thực hiện tác vụ này, chỉ lấy các bản ghi mà bạn mong muốn trong khi loại trừ những bản ghi có cột 4 phiền phức trong hỗn hợpIS NOT NULL Toán tử so sánhCho đến nay, phương pháp đơn giản và dễ hiểu nhất để đảm bảo tập kết quả của một cột cụ thể không chứa giá trị 4 là sử dụng toán tử so sánh 7Ví dụ: nếu chúng tôi muốn chọn tất cả các bản ghi trong bảng 8 trong đó cột 9 không phải là 4, truy vấn có thể trông như thế này
Vì 7 hoạt động giống như bất kỳ bộ so sánh nào khác nên nó có thể được kết hợp với các mệnh đề 1 khác để lọc thêm kết quả, giống như khi bạn đang sử dụng 2, 3, 4, 5 và các toán tử so sánh tiêu chuẩn khácLọc NULL từ nhiều cộtTrong một số trường hợp, bạn có thể muốn truy xuất kết quả khi không có giá trị 4 nào trên nhiều cột. Ví dụ: chúng tôi có một số bản ghi trong bảng 8
Hãy lưu ý rằng The Doors of Stone ( 8) chưa được xuất bản và do đó, 9 là 4. Tương tự, Beowulf ( 01) – thiên anh hùng ca cổ nổi tiếng của Anh – không rõ tác giả, vì vậy 9 là 4Trong trường hợp này, chúng tôi có thể muốn truy vấn các kết quả chỉ chứa bốn bản ghi đầu tiên, do đó loại trừ hai bản ghi cuối cùng có giá trị 4 trong 9 hoặc 9. Điều này có thể được thực hiện với câu lệnh đơn giản này bằng cách sử dụng 07 với nhiều toán tử so sánh 0Ghi chú. Dấu ngoặc đơn không bắt buộc nhưng nên đặt các bộ so sánh được nhóm lại để dễ đọc hơn Ở đó bạn có nó; Empty hay NULL trong MySQL?Ràng buộc IS NULL có thể được sử dụng bất cứ khi nào cột trống và ký hiệu ( ' ') được sử dụng khi có giá trị trống. mysql> CHỌN * TỪ ColumnValueNullDemo Ở ĐÂU Tên cột LÀ NULL HOẶC Tên cột = ' '; .
Không phải là null hoặc trống trong truy vấn SQL?Điều kiện IS NOT NULL được sử dụng trong SQL để kiểm tra giá trị không NULL . Nó trả về TRUE nếu tìm thấy giá trị không NULL, ngược lại nó trả về FALSE. Nó có thể được sử dụng trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.
Là NULL và không phải là null trong MySQL?NULL có nghĩa là bạn không phải cung cấp giá trị cho trường. NOT NULL nghĩa là bạn phải cung cấp giá trị cho các trường . Bên ngoài JDBC, MySQL cho phép bạn bỏ qua giá trị cho cột NOT NULL nếu có DEFAULT trên cột.
Không phải là truy vấn null trong MySQL?Ràng buộc NOT NULL buộc cột KHÔNG chấp nhận giá trị NULL . Điều này buộc một trường phải luôn chứa một giá trị, nghĩa là bạn không thể chèn bản ghi mới hoặc cập nhật bản ghi mà không thêm giá trị vào trường này. |