Khóa chính Primary Key trong SQL Server

Trong bài này chúng ta sẽ tìm hiểu đên khóa chính primary key trong SQL Server và cách tạo khóa chính cho một table. Khóa chính rất quan trọng vì nó dùng để phân biệt các dòng dữ liệu trong bảng.

1. Primary key là gì?

Khóa chính là tập hợp một hoặc nhiều column giúp phân biệt các record trong một table, đây là thông tin rất quan trọng bởi nếu thiếu nó thì lược đồ CSDL của bạn chỉ là đồ bỏ đi.

Ví dụ bảng SINHVIEN thì thường ta sẽ có column MASINHVIEN dùng để nhận diện các sinh viên, tên sinh viên có thể bị trùng nhưng mã sinh viên thì không thể trùng.

Đặc điểm của khóa chính như sau:

  • Có thể thiết lập khóa chính bằng một hoặc nhiều column, trong thực tế thì nên 1 column
  • Khóa chính không được NULL, và là duy nhất (unique)
  • Khóa chính nếu là kiểu số nguyên thì nên thiết lập tăng tự động sẽ giúp tối ưu database

2. Cách tạo primary key

Chúng ta có hai cách tạo primary key, thứ nhất là tạo trực tiếp ở lệnh create table và thứ hai là sử dụng lệnh alter table.

Tạo trực tiếp ở lệnh create table

Cách này có hai cú pháp như sau:

Cú pháp 1
CREATE TABLE table_name (
    pk_column data_type PRIMARY KEY,
    ...
);

Cú pháp 2
CREATE TABLE table_name (
    pk_column_1 data_type,
    pk_column_2 data type,
    ...
    PRIMARY KEY (pk_column_1, pk_column_2)
);

Với cú pháp 1 thì chỉ dùng được ở trường hợp khóa chính chỉ có một column, còn cú pháp 2 thì dùng cho trường hợp nhiều column.

Ví dụ 1: Tạo bảng activities thuộc schema sales, vì khóa chính chỉ có 1 column nên dùng cú pháp 1.

CREATE TABLE sales.activities (
    activity_id INT PRIMARY KEY IDENTITY,
    activity_name VARCHAR (255) NOT NULL,
    activity_date DATE NOT NULL
);

Ví dụ 2: Tạo bảng participants thuộc schema sales, vì khóa chính có 2 column nên dùng cú pháp 2.

CREATE TABLE sales.participants(
    activity_id int,
    customer_id int,
    PRIMARY KEY(activity_id, customer_id)
);

Tạo bằng lệnh Alter Table

Lệnh ALTER TABLE có thể dùng để thay đổi cấu trúc của table nên ta có thể dùng nó để xác định khóa chinh sau khi tạo bảng.

Ví dụ: Tạo bảng events thuộc schema sales. Chúng ta sẽ có hai bước như sau.

Bước 1: Tạo bảng

CREATE TABLE sales.events(
    event_id INT,
    event_name VARCHAR(255),
    start_date DATE NOT NULL,
    duration DEC(5,2)
);

Bước 2: Sử dụng lệnh alter table để tạo khóa chính

ALTER TABLE sales.events 
ADD PRIMARY KEY(event_id);

Trên là hai cách tạo khóa chính (primary key) trong SQL Server. Bài này mình dừng ở đây, bài tiếp theo mình sẽ nói đến cách tạo khóa ngoại cho table.

Khóa học nên xem

Nguồn: freetuts.net