Tóm Tắt
Ràng buột Primary Key của SQL
Ràng buột PRIMARY KEY của SQL
Ràng buộc xác định duy nhất mỗi bản PRIMARY KEY
được ghi trong một bảng.
PRIMARY KEY
phải chứa giá trị DUY NHẤT và không được chứa giá trị NULL.
Một bảng chỉ có thể có MỘT PRIMARY KEY,
và trong bảng, Primary key này có thể bao gồm một hoặc nhiều cột (trường).
PRIMARY KEY SQL với CREATE TABLE
Câu lệnh SQL sau tạo một PRIMARY KEY
trên cột “ID” khi bảng “Persons” được tạo.
MySQL
Ví dụ
CREATE TABLE
Persons ( ID intNOT NULL
, LastName varchar(255
)NOT NULL
, FirstName varchar(255
), Age int,PRIMARY KEY
(ID) );
SQL Server/ Oracle/ MS Access
Ví dụ
CREATE TABLE
Persons ( ID intNOT NULL PRIMARY KEY
, LastName varchar(255
)NOT NULL
, FirstName varchar(255
), Age int );
Để cho phép đặt tên cho một ràng buột PRIMARY KEY
và để xác định một ràng buột PRIMARY KEY
trên nhiều cột, chúng ta sử dụng cú pháp SQL sau.
MySQL/ SQL Server/ Oracle/ MS Access
Ví dụ
CREATE TABLE
Persons ( ID intNOT NULL
, LastName varchar(255
)NOT NULL
, FirstName varchar(255
), Age int,CONSTRAINT
PK_PersonPRIMARY KEY
(ID,LastName) );
Lưu ý: Trong ví dụ trên chỉ có MỘT PRIMARY KEY(PK_Person). Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT (ID + LastName).
PRIMARY KEY SQL với ALTER TABLE
Để tạo ràng buột PRIMARY KEY
trên cột “ID” khi bảng đã được tạo, chúng ta sử dụng cú pháp SQL sau.
MySQL/ SQL Server/ Oracle/ MS Access
Ví dụ
ALTER TABLE
PersonsADD PRIMARY KEY
(ID);
Để cho phép đặt tên cho một ràng buột PRIMARY KEY
và để xác định một ràng buột PRIMARY KEY
trên nhiều cột, chúng ta sử dụng cú pháp SQL sau.
MySQL/ SQL Server/ Oracle/ MS Access
Ví dụ
ALTER TABLE
PersonsADD CONSTRAINT
PK_PersonPRIMARY KEY
(ID,LastName);
Lưu ý: Nếu bạn sử dụng ALTER TABLE
để thêm khóa chính, (các) cột khóa chính phải được khai báo là không chứa giá trị NULL (khi bảng được tạo lần đầu tiên).
Xóa ràng buột PRIMARY KEY
Để loại bỏ một ràng buột PRIMARY KEY
, chúng ta sử dụng cú pháp SQL sau.
MySQL
Ví dụ
ALTER TABLE
PersonsDROP PRIMARY KEY
;
SQL Server/ Oracle/ MS Access
Ví dụ
ALTER TABLE
PersonsDROP CONSTRAINT
PK_Person;