SQL NOT NULL là một constraint (ràng buộc) dữ liệu trong SQL được sử dụng để đảm bảo rằng một cột trong bảng không thể chứa giá trị NULL.
Cú pháp:
- Khi tạo bảng:
CREATE TABLE table_name ( column1 data_type NOT NULL, column2 data_type, ... );
- Khi thay đổi bảng:
ALTER TABLE table_name MODIFY column_name data_type NOT NULL;
Giải thích:
- table_name: Tên của bảng.
- column_name: Tên của cột muốn áp dụng constraint.
- data_type: Kiểu dữ liệu của cột.
Ưu điểm của việc sử dụng constraint NOT NULL:
- Bảo đảm tính toàn vẹn dữ liệu: Ngăn chặn việc lưu trữ các giá trị NULL trong cột, giúp dữ liệu nhất quán và chính xác hơn.
- Cải thiện hiệu suất truy vấn: Cho phép tối ưu hóa các truy vấn bằng cách loại bỏ các hàng có chứa giá trị NULL trong cột được áp dụng constraint.
- Hỗ trợ các ràng buộc khác: Có thể là nền tảng cho các ràng buộc khác, chẳng hạn như UNIQUE (duy nhất) và PRIMARY KEY (khóa chính).
Lưu ý:
- Cột được áp dụng constraint NOT NULL vẫn có thể chứa giá trị rỗng (empty string, empty array) tùy thuộc vào kiểu dữ liệu.
- Bạn có thể sử dụng các hàm như ISNULL hoặc COALESCE để xử lý các giá trị rỗng trong cột NOT NULL.
Ví dụ:
--Tạo bảng Customers với cột Email bắt buộc phải có giá trị: CREATE TABLE Customers ( CustomerID int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(255) NOT NULL, LastName varchar(255) NOT NULL, Email varchar(255) NOT NULL UNIQUE ); --Thêm constraint NOT NULL cho cột Age trong bảng Employees: ALTER TABLE Employees MODIFY Age int NOT NULL;