Giới thiệu
Constraints: Constraint sử dụng để thực thi tính toàn vẹn của cơ sở dữ liệu. Constraint cơ bản là tập các quy định về các value. Có sáu loại ràng buộc khác nhau.
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
Trong bài viết này tôi sẽ thảo luận ba ràng buộc như Primary Key, Foreign Key và Default.
Primary Key: Ràng buộc khóa chính là trở ngại chính xác định bản ghi duy nhất trong một bảng. Cột khóa chính không thể nhân đôi và không thể chứa giá trị null.
Cấu trúc của Tạo Bảng
CREATE TABLE Table_Name
(
Field Name1 DataType,
Field Name2 DataType,
Field Name3 DataType,
……..
);
Ví dụ : Tạo Bảng
CREATE TABLE Employee
(
EmpID int,
EmpName varchar(35),
EmpAddress varchar(255),
DeptID int
);
Ví dụ : Tạo bảng với Ràng buộc Khóa chính
CREATE TABLE Employee
(
EmpID int CONSTRAINT pk_emp_id PRIMARY KEY,
EmpName varchar(35),
EmpAddress varchar(255),
DeptID int
);
Ví dụ : Làm thế nào để Thay đổi bảng để thêm khóa chính
ALTER TABLE Employee
ADD CONSTRAINT pk_emp_id PRIMARY KEY(EmpID)
GO
Ví dụ : Làm thế nào để xóa Khóa chính
ALTER TABLE Employee
DROP CONSTRAINT pk_emp_id;
GO
Foreign Key: Ràng buộc khóa ngoại trong bảng cơ sở dữ liệu là trường phù hợp với trường khóa chính trong bảng khác. Trường khóa ngoại được sử dụng để tạo ra mối quan hệ với trường tkhóa chính của bảng chính. Điều này ngăn cản bạn chèn thêm bất kỳ dữ liệu không hợp lệ trong trường khóa ngoại vì trường khóa ngoại chỉ chấp nhận những giá trị đã có trong trường khóa chính.
Ví dụ : tạo bảng với ràng buộc khóa ngoại
CREATE TABLE Dept
(
DeptID int CONSTRAINT pk_Dept_did PRIMARY KEY,
DeptName varchar(50),
DeptPhone varchar(25)
);
CREATE TABLE Employee
(
EmpID int CONSTRAINT pk_employee_eid PRIMARY KEY,
EmpName varchar(35),
EmpAddress varchar(255),
DeptID int
CONSTRAINT fk_dept_did FOREIGN KEY REFERENCES Dept(DeptID)
);
GO
Ví dụ : Làm thế nào để Thay đổi Bảng để thêm khóa ngoại
ALTER TABLE Employee
ADD CONSTRAINT fk_dept_did FOREIGN KEY(DeptID)REFERENCES Dept(DeptID)
GO
Ví dụ : Làm thế nào để Thay đổi Trữ Bảng để xóa khóa ngoại
ALTER TABLE Employee
DROP CONSTRAINT fk_dept_did;
GO
Default Constraint: Ràng buộc mặc định cung cấp các giá trị mặc định cho trường hoặc cột trong khi tạo ra bảng ghi mới. Nói cách khác, cột mặc định sẽ nhận được giá trị default được đăng ký như giá trị mặc định. Trong khi chèn bảng mới với giá trị null nó sẽ nhận được giá trị mặc định được đăng ký.
Ví dụ : Tạo bảng có tạo sự ràng buộc mặc định
CREATE TABLE Customer
(
CustomerID int CONSTRAINT pk_customer_cid PRIMARY KEY,
CustomerName varchar(30),
CustomerAddress varchar(50) CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN'
);
GO
Ví dụ : Thay đổi bảng để thêm ràng buộc mặc định
ALTER TABLE Customer
ADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddress
AGO
Ví dụ : Thay đổi bảng để xóa ràng buộc mặc định
ALTER TABLE Customer
DROP CONSTRAINT df_customer_Add
GO
Kết luận
Trong hệ thống quản lý cơ sở dữ liệu quan hệ mà không ràng buộc khóa chính thì nó sẽ không thể liên kết đến bảng khác.