SQL Server: Primary Key (Khóa Chính) | V1Study

Ràng buộc khoá chính (PRIMARY KEY - PK) được dùng để phân biệt các bản ghi trong một bảng. PK đảm bảo tính toàn vẹn thực thể cho bảng. PK được đặt trên một cột hoặc một tập cột của bảng. Cột đặt PK thông thường là cột mã như mã sinh viên, mã môn học, mã sản phẩm, ...

Dưới đây là một số điểm bạn cần lưu ý khi sử dụng PK:

- Một bảng chỉ được phép có duy nhất một PK.

- Muốn đặt PK trên cột thì cột đó không được chứa những giá trị giống nhau và phải là cột NOT NULL. Ví dụ các mã sinh viên là khác nhau nên có thể đặt PK trên cột mã sinh viên.

- Muốn đặt PK trên một tập cột thì tập cột đó không được chứa những tập giá trị giống nhau và mỗi cột của tập cột đó phải là cột NOT NULL. Ví dụ bảng điểm sinh viên có mã sinh viên và mã môn học thì tập giá trị của tập cột (mã sinh viên,mã môn học) là khác nhau nên có thể đặt PK trên tập cột này.

- Không thể chèn bản ghi mà giá trị tại cột chứa khoá chính đã có từ trước. Ví dụ như với bảng Customer đã có bản ghi có mã khách (CustomerID) là 5 rồi thì ta không thêm được khách hàng có mã là 5 nữa. Hình dưới đây minh hoạ điều này.

sql: minh hoạ primary key

Để tạo ràng buộc PK ta có các cách được thể hiện thông qua các ví dụ như sau đây.

Cách 1:

CREATE TABLE Student( studentid int not null PRIMARY KEY, --đặt PK ngay sau khi tạo cột tương ứng studentname nvarchar(30), dateofbirth date );

Cách 2:

CREATE TABLE Student( studentid int not null, studentname nvarchar(30), dateofbirth date, PRIMARY KEY(studentid) --đặt PK phía cuối các phần tạo cột );

Cách 3:

CREATE TABLE Student( studentid int not null, studentname nvarchar(30), dateofbirth date, constraint pk_studentid PRIMARY KEY(studentid) --tạo một ràng buộc PK trong bảng );

Cách 4:

Ở cách này ta sử dụng biện pháp sửa bảng để thêm khóa chính vào. Cú pháp cụ thể được thể hiện như dưới đây:

ALTER TABLE Tên_bảng ADD PRIMARY KEY(Tên_cột); --tạo PK sau khi đã tạo xong bảng

Ví dụ:

ALTER TABLE Student ADD PRIMARY KEY(studentid); ALTER TABLE Marks ADD PRIMARY KEY(studentid,subjectid);

Cách 5:

Cách này sẽ tạo một ràng buộc khóa chính cho bảng tương ứng. Cách này được sử dụng khi bạn muốn tách biệt hẳn câu lệnh thuần tạo bảng với câu lệnh tạo khóa chính, đồng thời cách này cũng cho phép bạn có thể dễ dàng thay đổi khóa chính cho bảng khi cần. Cú pháp của cách này là như sau:

ALTER TABLE Tên_bảng ADD CONSTRAINT Tên_ràng_buộc PRIMARY KEY(Tên_cột); --tạo một ràng buộc PK có tên riêng (đây là cách khuyên dùng khi muốn điều chỉnh lại PK)

Ví dụ:

ALTER TABLE Student ADD CONSTRAINT pk_student PRIMARY KEY(studentid); ALTER TABLE Marks ADD CONSTRAINT pk_marks PRIMARY KEY(studentid,subjectid);

Từ khóa » Khóa Chính Sql