1. Tạo khóa chính bằng PRIMARY KEY

Khóa chính trong một bảng được định nghĩa là các dữ liệu duy nhất (không được trùng lặp). Khóa chính không được phép chứa dữ liệu NULL. Một bảng chỉ có thể có một khóa chính và trong bảng, khóa chính này có thể bao gồm một hoặc nhiều cột (trường).

Cú pháp thêm một khóa chính PRIMARY KEY vào trong câu lệnh tạo bảng như sau:

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    column3 datatype,
   ....
);

Ta hoàn toàn có thể tạo ra khóa chính PRIMARY KEY và đặt tên cho khóa chính đó bằng cú pháp như sau:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    CONSTRAINT name PRIMARY KEY(column1 ,column2, column3 )
   ....
);

Trong đó:

  • CREATE TABLE là câu lệnh hay từ khóa cần có
  • table_name là tên của bảng cần tạo
  • column1, column2, column3… là tên các cột thuộc trong bảng
  • datatype là kiểu dữ liệu của từng cột
  • PRIMATY KEY là khóa chính cho cột
  • name là tên của khóa chính PRIMATY KEY do ta tự đặt

Để bổ sung thêm khóa chính vào trong bảng, ta sẽ sử dụng câu lệnh ALTER TABLE như sau:

ALTER TABLE table_name
ADD CONSTRAINT name PRIMARY KEY (column1, column2);

Trường hợp ta cần loại bỏ khóa chính đã có sẵn trong bảng, ta cũng sử dụng câu lệnh ALTER TABLE như sau để xóa bỏ khóa chính trong bảng:

ALTER TABLE table_name
DROP CONSTRAINT name;

Chú ý: Để xóa bỏ khóa chính thì ta cần biết name hay tên của khóa chính mà ta đã thêm!

2. Ví dụ PRIMARY KEY

Vị dụ dưới đây, tôi sẽ tạo bảng ConNguoi bao gồm các cột là  ID, Ho, Ten, DiaChi, ThanhPho và đặt khóa chính PRIMARY KEY cho cột ID trong câu lệnh tạo bảng như sau:

CREATE TABLE ConNguoi (
    ID int NOT NULL PRIMARY KEY,
    Ho varchar(25) NOT NULL,
    Ten varchar(25) NOT NULL,
    DiaChi nvarchar(255),
    ThanhPho nvarchar(255),
);

Trong trường hợp, tôi cần đặt các khóa chính PRIMARY KEY có tên là PK_ConNguoi cho các cột là ID, Ho trong câu lệnh tạo bảng tôi sẽ sử dụng như sau:

CREATE TABLE ConNguoi (
    ID int NOT NULL,
    Ho varchar(25) NOT NULL,
    Ten varchar(25) NOT NULL,
    DiaChi nvarchar(255),
    ThanhPho nvarchar(255),
    CONSTRAINT PK_ConNguoi PRIMARY KEY(ID, Ho)
);

Sau bảng ConNguoi đã được tạo với 2 khóa chính là ID, Ho và giả sử tôi cần bổ xung thêm một cột Ten làm khóa chính PRIMARY KEY và đặt tên cho khóa chính này là PK_Ten trong bảng tôi sẽ sử dụng câu lệnh sau:

ALTER TABLE ConNguoi
ADD CONSTRAINT PK_Ten PRIMARY KEY (Ten);

Cuối cùng giả sử tôi cần xóa bỏ đi khóa chính có tên là PK_Ten trong bảng ConNguoi tôi sẽ sử dụng câu lệnh như sau:

ALTER TABLE ConNguoi
DROP CONSTRAINT PK_Ten;

Chú ý: Khi cột có khóa chính PRIMARY KEY thì mọi thao tác thêm hoặc cập nhật dữ liệu vào trong bảng phải thỏa mãn điều kiện dữ liệu không được trùng lặp trong cột có khóa chính PRIMARY KEY.