Ràng buộc DEFAULT (DEFAULT constraint) trong SQL được sử dụng để thiết lập giá trị mặc định cho một cột. Giá trị mặc định sẽ tự động được gán cho các bản ghi mới trong bảng nếu không có giá trị nào được cung cấp cho cột đó khi chèn dữ liệu.
Có hai cách để sử dụng ràng buộc DEFAULT:
- Thêm ràng buộc khi tạo bảng:
CREATE TABLE <Ten bang> ( <Cot> <Kieu du lieu> DEFAULT <Gia tri mac dinh>, <Cot khac>, );
- Thêm ràng buộc sau khi tạo bảng:
ALTER TABLE <Ten bang> ALTER COLUMN <Ten cot> SET DEFAULT <Gia tri mac dinh>;
Trong đó:
- <Ten bang>: Tên của bảng chứa cột cần ràng buộc.
- <Ten cot>: Tên của cột cần thiết lập giá trị mặc định.
- <Kieu du lieu>: Kiểu dữ liệu của cột.
- <Gia tri mac dinh>: Giá trị mặc định muốn thiết lập cho cột.
Ví dụ:
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName VARCHAR(50) DEFAULT 'John', LastName VARCHAR(50) DEFAULT 'Doe', Salary INT DEFAULT 1000000, );
Trong ví dụ này, các cột FirstName, LastName và Salary có giá trị mặc định tương ứng là ‘John’, ‘Doe’ và 1000000. Khi chèn một bản ghi mới vào bảng Employees, nếu không cung cấp giá trị cho các cột này, giá trị mặc định sẽ tự động được gán.
- Xoá DEFAULT Constraint:
--Mysql ALTER TABLE Persons ALTER City DROP DEFAULT; --SQL Server / Oracle / MS Access: ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT;
Lưu ý:
- Giá trị mặc định có thể là một giá trị cố định, một biểu thức hoặc một hàm SQL.
- Nếu giá trị mặc định được đặt thành NULL, cột sẽ cho phép giá trị null.
- Ràng buộc DEFAULT có thể được thay đổi hoặc xóa sau khi tạo.
Sử dụng ràng buộc DEFAULT mang lại một số lợi ích:
- Giảm thiểu việc nhập dữ liệu: Người dùng không cần nhập giá trị cho các cột có giá trị mặc định.
- Đảm bảo tính nhất quán của dữ liệu: Giá trị mặc định giúp đảm bảo rằng tất cả các bản ghi trong bảng có cùng cấu trúc dữ liệu.
- Tăng hiệu quả: Việc sử dụng giá trị mặc định có thể giúp tăng tốc độ truy vấn dữ liệu.