MariaDB - Giá trị rỗng
Khi làm việc với giá trị NULL, hãy nhớ chúng là giá trị chưa biết. Chúng không phải là chuỗi rỗng hoặc số không, là giá trị hợp lệ. Trong tạo bảng, các đặc tả cột cho phép thiết lập chúng chấp nhận giá trị null hoặc từ chối chúng. Chỉ cần sử dụng mệnh đề NULL hoặc NOT NULL. Điều này có ứng dụng trong các trường hợp thiếu thông tin hồ sơ như số ID.
Các biến do người dùng xác định có giá trị NULL cho đến khi được gán rõ ràng. Các tham số quy trình được lưu trữ và các biến cục bộ cho phép đặt giá trị NULL. Khi một biến cục bộ không có giá trị mặc định, nó có giá trị là NULL.
NULL không phân biệt chữ hoa chữ thường và có các bí danh sau:
- UNKNOWN (một giá trị boolean)
- \N
Toán tử NULL
Toán tử so sánh tiêu chuẩn không thể được sử dụng với NULL (ví dụ, =,>,> =, <=, <, hoặc! =) Vì tất cả các phép so sánh có giá trị NULL đều trả về NULL, không đúng hoặc sai. Các phép so sánh với NULL hoặc có thể chứa nó phải sử dụng toán tử “<=>” (NULL-SAFE).
Các toán tử khả dụng khác là -
IS NULL - Nó kiểm tra giá trị NULL.
IS NOT NULL - Nó xác nhận không có giá trị NULL.
ISNULL - Nó trả về giá trị 1 khi phát hiện ra giá trị NULL và 0 khi không có.
COALESCE - Nó trả về giá trị không phải NULL đầu tiên của danh sách hoặc nó trả về giá trị NULL trong trường hợp không có.
Sắp xếp giá trị NULL
Trong hoạt động sắp xếp, giá trị NULL có giá trị thấp nhất, vì vậy thứ tự DESC dẫn đến giá trị NULL ở dưới cùng. MariaDB cho phép đặt giá trị cao hơn cho các giá trị NULL.
Có hai cách để làm điều này như hình dưới đây -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
Mặt khác -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
Chức năng NULL
Các hàm thường xuất ra NULL khi bất kỳ tham số nào là NULL. Tuy nhiên, có những chức năng được thiết kế đặc biệt để quản lý các giá trị NULL. Họ là -
IFNULL()- Nếu biểu thức đầu tiên không phải là NULL, nó sẽ trả về nó. Khi nó đánh giá là NULL, nó trả về biểu thức thứ hai.
NULLIF() - Nó trả về NULL khi các biểu thức được so sánh bằng nhau, nếu không, nó trả về biểu thức đầu tiên.
Các hàm như SUM và AVG bỏ qua giá trị NULL.
Chèn giá trị NULL
Khi chèn giá trị NULL vào cột được khai báo NOT NULL, một lỗi xảy ra. Trong chế độ SQL mặc định, cột NOT NULL thay vào đó sẽ chèn một giá trị mặc định dựa trên kiểu dữ liệu.
Khi một trường là TIMESTAMP, AUTO_INCREMENT hoặc cột ảo, MariaDB quản lý các giá trị NULL theo cách khác. Việc chèn vào cột AUTO_INCREMENT làm cho số tiếp theo trong chuỗi được chèn vào vị trí của nó. Trong trường TIMESTAMP, MariaDB chỉ định dấu thời gian hiện tại. Trong các cột ảo, một chủ đề được thảo luận ở phần sau của hướng dẫn này, giá trị mặc định được gán.
Các chỉ mục UNIQUE có thể chứa nhiều giá trị NULL, tuy nhiên, khóa chính không thể là NULL.
Giá trị NULL và lệnh Alter
Khi bạn sử dụng lệnh ALTER để sửa đổi một cột, trong trường hợp không có thông số kỹ thuật NULL, MariaDB sẽ tự động gán giá trị.