Học SQL Server cơ bản

Bài 6: Khóa chính trong SQL Server

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:
  1. 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
  2. Khóa chính không được NULL, và là duy nhất (unique)
  3. 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 PRIMARYKEY,
...);
Cú pháp 2:
CREATE TABLE
table_name (pk_column_1 data_type,pk_column_2 data type,
...
PRIMARYKEY(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 PRIMARYKEY IDENTITY,
activity_name VARCHAR(255) NOTNULL,
activity_date DATE NOTNULL

);
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,
PRIMARYKEY (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 NOTNULL,
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 PRIMARYKEY(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.