Ràng buộc NOT NULL là loại ràng buộc được sử dụng phổ biến của MySQL. Vì vậy để làm việc với MySQL bạn nên biết và nắm rõ cách sử dụng ràng buộc này.
Ràng buộc NOT NULL trong MySQL
Trong MySQL, mặc định mỗi cột có thể chứa các giá trị là giá trị NULL(không có gì).
Ràng buộc NOT NULL sẽ không cho phép một cột chứa các giá trị NULL.
Điều này sẽ buộc một trường luôn chứa ít nhất một giá trị, có nghĩa là bạn không thể chèn bản ghi(record) mới hay cập nhật một bản ghi mà không thêm một giá trị vào trường này (tức là bắt buộc không được để trống trường này).
Cách tạo ràng buộc NOT NULL
Có hai cách để tạo ràng buộc NOT NULL, cách thứ nhất là thêm ràng buộc vào ngay khi tạo bảng lần đầu trong câu lệnh CREATE TABLE. Cách thứ hai để tạo ràng buộc là khi bảng đã có sẵn, ta sẽ thêm hoặc sửa rằng buộc bằng cách sử dụng câu lệnh ALTER TABLE.
- Thêm rằng buộc khi tạo bảng
Câu lệnh SQL dưới đây sẽ tạo ra một bảng có tên là “Persons” với các trường id, LastName, FirstName, Age. Trong đó, các cột id, LastName, FirstName sẽ không cho phép giá trị NULL, còn lại cột Age thì được phép.
CREATE TABLE Persons (
id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
Chạy lệnh này để tạo bảng, sau đó hãy thử kiểm tra bằng cách thêm giá trị vào các dòng của bảng và thử để NULL các trường này xem sao.
Câu lệnh chèn dữ liệu vào bảng persons
INSERT INTO `persons`(`id`, `LastName`, `FirstName`, `Age`)
VALUES (NULL,NULL,NULL,NULL)
Như vậy khi chèn dữ liệu vào bảng MySQL sẽ báo lỗi ngay là trường id không được phép để rỗng.
- Thêm ràng buộc vào trường khi bảng đã có sẵn
Với ví dụ ta đã tạo bảng ở bên trên, cột Age vẫn chưa có ràng buộc, chúngcó thể thêm ràng buộc cho nó với câu lệnh ALTER TABLE như sau:
ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL;
Okay, như vậy là ta đã tạo thành công ràng buộc NOT NULL cho cột Age. Để kiểm tra bây giờ hãy thử chèn một bản ghi(dòng) vào bảng, các cột khác hãy chèn dữ liệu vào, riêng cột Age để NULL xem có báo lỗi không nhé.
>>XEM THÊM: Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL
Câu điều kiện với ràng buộc NOT NULL
Câu ràng buộc NOT NULL cũng có thể được sử dụng trong mệnh đề điều kiện để có thể truy vấn được các hàng dữ liệu mà loại bỏ đi các hàng với cột có giá trị với null.
Ví dụ mình có bảng users như bên dưới.
Bây giờ để select ra được các user nhưng phải loại bỏ đi các user không có tên(trường name là NULL), viết câu lệnh SQL như sau.
SELECT * FROM `users`
WHERE name IS NOT NULL;
Kết quả khi chạy câu lệnh, các hàng có name là null đã bị loại bỏ khi select.
>>XEM THÊM: Toán tử số học trong MySQL – Phép toán trong MySQL
CẢM ƠN BẠN ĐÃ ĐỌC HẾT BÀI VIẾT! CHÚC BẠN HỌC TỐT!
XEM THÊM Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn