05.3 Các ràng buộc SQL-PRIMARY KEY

Ràng buộc khóa chính PRIMARY KEY

Ràng buộc PRIMARY KEY xác định sự duy nhất của mỗi bản ghi trong bảng cơ sở dữ liệu.

Một PRIMARY KEY có thể gồm một trường hoặc nhiều trường.

Các khóa chính phải bao gồm các giá trị duy nhất

Một cột khóa chính không thể chứa giá trị NULL

Mỗi bảng dữ liệu có và chỉ có duy nhất một khóa chính (PRIMARY KEY)

Ràng buộc khóa chính khi tạo bảng

Đoạn mã SQL sau tạo một PRIMARY KEY trên cột PID khi mà bảng Persons được tạo.

MYSQL

CREATE TABLE Persons
(
        PID INT NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        CITY varchar(255),
        PRIMARY KEY (PID)
)

SQL Server/Oracle/MS Access

CREATE TABLE Persons
(
        PID INT NOT NULL PRIMARY KEY,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        CITY varchar(255),
)

Để cho phép đặt tên một ràng buộc khóa chính (PRIMARY KEY), và định nghĩa một khóa chính trên nhiều cột, sử dụng cú pháp SQL sau:

MYSQL/ SQL Server/ Oracle/ MS Access

CREATE TABLE Persons
(
        PID INT NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255) NOT NULL,
        Address varchar(255),
        CITY varchar(255),
        CONSTRAINT Pk_psid PRIMARY KEY (PID, LastName)
)

Chú ý: Trong ví dụ trên, chỉ có một PRIMARY KEY có tên là Pk_psid. Tuy vậy giá trị của Pk_psid được tạo thành từ hai cột đó là (PID và LastName)

Ràng buộc khóa chính (PRIMARY KEY) trong ALTER TABLE

Để tạo một ràng buộc khóa chính trên cột “PID” khi mà bảng đã được tạo từ trước, ta có thể làm như đoạn mã SQL sau.

MYSQL/SQL Server/ Oracle/ MS Access

ALTER TABLE Persons

ADD PRIMARY KEY (PID)

Để cho phép đặt tên một ràng buộc khóa chính và định nghĩa một ràng buộc khóa chính trên nhiều cột, sử dụng cú pháp SQL sau.

MYSQL/SQL Server/ Oracle/ MS Access

ALTER TABLE Persons

ADD CONSTRAINT Pk_psid

PRIMARY KEY (PID, LastName)

Chú ý: Nếu bạn sử dụng lệnh ALTER TABLE để thêm một khóa chính, các cột khóa chính phải được khai báo từ trước là không chứa dữ liệu có giá trị NULL (Trong lần đầu tiên tạo bảng)

Xóa (DROP) một ràng buộc khóa chính

Để xóa một ràng buộc khóa chính, sử dụng đoạn mã SQL sau

MYSQL:

ALTER TABLE Persons

DROP PRIMARY KEY

SQL Server/ Oracle/ MS Access

ALTER TABLE Persons

DROP CONSTRAINT Pk_psid

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *