Primary Key trong SQL - Ngôn ngữ truy vấn T-SQL
Bài này bạn sẽ được giới thiệu cách tạo khóa chính (Primary Key) thể hiện qua các hệ hệ quản trị CSDL như SQL Serer, MySQL, Oracle, Access. Primary key là một hoặc nhiều column co tính chất đặc biệt đó là dùng để phân biệt sự khác nhau giữa các dòng dữ liệu, vì vậy giá trị của nó phải là duy ...
Bài này bạn sẽ được giới thiệu cách tạo khóa chính (Primary Key) thể hiện qua các hệ hệ quản trị CSDL như SQL Serer, MySQL, Oracle, Access.
Primary key là một hoặc nhiều column co tính chất đặc biệt đó là dùng để phân biệt sự khác nhau giữa các dòng dữ liệu, vì vậy giá trị của nó phải là duy nhất. Mỗi table chỉ có một primary key duy nhất, mỗi primary key có thể có một hoặc nhiều column.
1. Tạo Primary Key bằng Create Table
Các ví dụ dưới đây là cách tạo Primary Key.
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) );
CREATE TABLE Persons ( ID int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );
Nếu bạn muốn đặt tên cho Primary Key để tiện cho việc quản lý sau này thì hãy sử dụng cú pháp sau:
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) );
Việc đặt tên này rất có lợi bởi sau này bạn có thể dễ dàng xóa khóa chính bằng câu lệnh SQL.
2. Tạo Primary Key bằng Alter Table
Giả sử ta cần tạo khóa chính cho column ID
nằm trong bảng Person
thì cách làm như sau:
ALTER TABLE Persons ADD PRIMARY KEY (ID);
Trường hợp khóa chính có nhiều column thì bạn sẽ viết các column cách nhau bởi dấu phẩy.
ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
Lưu ý: Khi bạn sử dụng lệnh Alter Table để tạo khóa chính thì các column đó phải đặt là NOT NULL, nếu không sẽ bị báo lỗi vì khóa chính không chấp nhận giá trị NULL.
3. Xóa Primary Key
Để xóa khóa chính Primary Key thì ta sử dụng lệnh Alter Table.
ALTER TABLE Persons DROP PRIMARY KEY;
ALTER TABLE Persons DROP CONSTRAINT PK_Person;
Như vậy với MySQL thì ta không cần tên của khóa chính.