Một bảng chỉ có thể có MỘT khóa chính;
KHÓA CHÍNH trên TẠO BẢNG
SQL sau đây tạo một
5 trên cột "ID" khi bảng "Người" được tạoCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
TẠO BẢNG Người [
ID int NOT NULL,
LastName varchar[255] NOT NULL,
FirstName
Age int,
PRIMARY KEY [ID]
];
Để cho phép đặt tên ràng buộc
5 và để xác định ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
5 trên nhiều cột, hãy sử dụng cú pháp SQL sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
TẠO BẢNG Người [
ID int NOT NULL,
LastName varchar[255] NOT NULL,
FirstName
Age int,
CONSTRAINT PK_Person PRIMARY KEY [ID,LastName]
];
Ghi chú. Trong ví dụ trên chỉ có MỘT
5 [PK_Person]. Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT [ID + Họ]Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
KHÓA CHÍNH trên BẢNG ALTER
Để tạo ràng buộc
5 trên cột "ID" khi bảng đã được tạo, hãy sử dụng SQL sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
ALTER TABLE Persons
THÊM KHÓA CHÍNH [ID];
Để cho phép đặt tên ràng buộc
5 và để xác định ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
5 trên nhiều cột, hãy sử dụng cú pháp SQL sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY [ID,LastName];
Ghi chú. Nếu bạn sử dụng
2 để thêm khóa chính, [các] cột khóa chính phải được khai báo là không chứa giá trị NULL [khi bảng được tạo lần đầu tiên]Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách sử dụng ràng buộc khóa chính của MySQL để tạo khóa chính cho một bảng
Giới thiệu về khóa chính MySQL
Khóa chính là một cột hoặc một tập hợp các cột xác định duy nhất mỗi hàng trong bảng. Khóa chính tuân theo các quy tắc này
- Khóa chính phải chứa các giá trị duy nhất. Nếu khóa chính bao gồm nhiều cột, tổ hợp các giá trị trong các cột này phải là duy nhất
- Cột khóa chính không thể có giá trị
1. Mọi nỗ lực chèn hoặc cập nhật
Code language: SQL [Structured Query Language] [sql]CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
2 vào cột khóa chính sẽ dẫn đến lỗi. Lưu ý rằng MySQL ngầm thêm một ràng buộc
Code language: SQL [Structured Query Language] [sql]CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
3 vào các cột khóa chính
Code language: SQL [Structured Query Language] [sql]CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
- Một bảng có thể có một và duy nhất một khóa chính
Vì MySQL hoạt động nhanh hơn với số nguyên nên kiểu dữ liệu của cột khóa chính phải là số nguyên e. g. ,
4Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
5. Và bạn nên đảm bảo rằng phạm vi giá trị của loại số nguyên cho khóa chính là đủ để lưu trữ tất cả các hàng có thể có mà bảng có thể cóCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Cột khóa chính thường có thuộc tính
6 tự động tạo một số nguyên tuần tự bất cứ khi nào bạn chèn một hàng mới vào bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Khi bạn xác định khóa chính cho một bảng, MySQL sẽ tự động tạo một chỉ mục có tên là
7Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
MySQL CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
8 ví dụ
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Ràng buộc
8 cho phép bạn xác định khóa chính của bảng khi bạn tạo hoặc thay đổi bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
1] Xác định ràng buộc CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
8 trong CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
01
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Thông thường, bạn xác định khóa chính cho một bảng trong câu lệnh
02Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Nếu khóa chính có một cột, bạn có thể sử dụng ràng buộc
8 làm ràng buộc cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
3Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Khi khóa chính có nhiều hơn một cột, bạn phải sử dụng ràng buộc
8 làm ràng buộc bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Trong cú pháp này, bạn phân tách các cột trong
05 bằng dấu phẩy [,]Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Có thể sử dụng ràng buộc bảng
8 khi khóa chính có một cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Ví dụ sau tạo một bảng tên là
07 có khóa chính là cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
08Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
1
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Code language: SQL [Structured Query Language] [sql]
Câu lệnh này tạo bảng
09 có ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
8 làm ràng buộc bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
4Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Trong trường hợp khóa chính bao gồm nhiều cột, bạn phải chỉ định chúng ở cuối câu lệnh
01. Bạn đặt danh sách các cột khóa chính được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn theo sau từ khóaCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Ví dụ sau tạo bảng
13 có khóa chính gồm 2 cột.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
08 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
15. Nó định nghĩa ràng buộcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
8 là ràng buộc bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Lưu ý rằng câu lệnh cũng tạo ra hai ràng buộc khóa ngoại
2] Xác định các ràng buộc của CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
8 bằng cách sử dụng CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
18
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Nếu một bảng vì lý do nào đó không có khóa chính, bạn có thể sử dụng câu lệnh
19 để thêm khóa chính vào bảng như sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
5Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Ví dụ sau thêm cột
40 vào khóa chínhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Đầu tiên, tạo bảng
41 không có khóa chínhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
8Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Thứ hai, thêm khóa chính vào bảng
41 bằng cách sử dụng câu lệnhCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
18Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Nếu bạn thêm khóa chính vào bảng đã có dữ liệu. Dữ liệu trong [các] cột sẽ được đưa vào khóa chính phải là duy nhất và không phải NULL
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
8 so với. CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
45 so với. CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
Code language: SQL [Structured Query Language] [sql]
46
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
CREATE TABLE table_name[
primary_key_column1 datatype,
primary_key_column2 datatype,
...,
PRIMARY KEY[column_list]
];
46 là từ đồng nghĩa vớiCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
48. Bạn sử dụngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
46 khi muốn tạo chỉ mục cho một cột hoặc một nhóm cột không phải là một phần của khóa chính hoặc khóa duy nhấtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Chỉ mục
10 đảm bảo rằng các giá trị trong một cột phải là duy nhất. Không giống như chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
7, MySQL cho phép các giá trịCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
2 trong chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
13. Ngoài ra, một bảng có thể có nhiều chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
13Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Giả sử rằng
15 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
16 của người dùng trong bảngCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
07 phải là duy nhất. Để thực thi các quy tắc này, bạn có thể xác định các chỉ mụcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
13 cho các cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
15 vàCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
16 như câu lệnh sauCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Thêm chỉ mục
13 cho cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
16Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
1Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Thêm chỉ mục
13 cho cộtCode language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
15Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
0Code language: SQL [Structured Query Language] [sql]
CREATE TABLE table_name[ primary_key_column1 datatype, primary_key_column2 datatype, ..., PRIMARY KEY[column_list] ];
Trong hướng dẫn này, bạn đã học cách tạo khóa chính cho bảng mới hoặc thêm khóa chính vào bảng hiện có