Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Khóa chính SQL

Một trường, chứa dữ liệu duy nhất trong bảng, được gọi là KHÓA CHÍNH (PK). Điều này có nghĩa là, trường KHÓA CHÍNH phải chứa dữ liệu duy nhất trong bảng.

  • Trường KEY CHÍNH chứa các giá trị trên mỗi hàng.
  • Trường KHÓA CHÍNH không được chứa một chuỗi trống.
  • Dữ liệu CHÍNH CHÍNH không bao giờ thay đổi theo thời gian.
  • Một bảng chỉ có thể bao gồm một TỪ KHÓA CHÍNH, có thể bao gồm một hoặc nhiều trường trong bảng. Khi nhiều cột được sử dụng làm KHÓA CHÍNH của bảng, chúng được gọi là khóa Tổng hợp trong bảng.
  • Sẽ không có bản ghi nào bị trùng lặp cho một KHÓA CHÍNH.
  • Nếu một trường được đặt làm TỪ KHÓA CHÍNH trong bảng, thì trường đó không thể chứa nhiều giá trị của cùng một trường trong bảng.

Ví dụ, chúng ta có một bảng Sinh viên trong cơ sở dữ liệu. Bảng chứa 4 trường Student_Id, Student_Name, Phone_Number và Email. Student_Id và Email là KEY CHÍNH trong bảng Student. Chỉ có một TỪ KHÓA CHÍNH nhưng có thể có một hoặc nhiều trường trong bảng, như chúng tôi đã nói ở trên. Dữ liệu của một sinh viên đã có trong bảng, nhưng chính sinh viên đó lại thêm dữ liệu của mình với cùng một ID email. Khi sinh viên nhập thông tin chi tiết, một cửa sổ bật lên sẽ hiển thị thông báo “Email đã tồn tại”. Nó được hiển thị vì Email đã tồn tại trong bảng và trường email là KHÓA CHÍNH và KHÓA CHÍNH không được chứa các giá trị trùng lặp.

Tạo KHÓA CHÍNH trên BẢNG SQL

Truy vấn SQL sau sẽ tạo một KHÓA CHÍNH trên trường Employee_Id khi bảng "Employee" được tạo.

CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );        

Truy vấn trên đã xác định KHÓA CHÍNH cho trường Employee_Id. Chúng ta có thể đề cập đến tên khóa sau tên trường và kiểu dữ liệu. Truy vấn trên là một cách chúng ta có thể tạo Employee_Id làm KHÓA CHÍNH.

Để kiểm tra xem KHÓA CHÍNH của chúng ta có được xác định thành công hay không, chúng ta có thể sử dụng lệnh DESC theo sau là tên bảng Nhân viên.

Nhân viên DESC;

Bộ phận
Fields Loại Không Phím Mặc định Thêm
Employee_Id Int (11) KHÔNG PRI KHÔNG ĐẦY ĐỦ
Employee_Name Varchar (40) KHÔNG KHÔNG ĐẦY ĐỦ
Mức lương Int (11) KHÔNG KHÔNG ĐẦY ĐỦ
Varchar (40) KHÔNG ĐẦY ĐỦ
Thành phố Varchar (40) KHÔNG ĐẦY ĐỦ

Trường khóa PRI được đề cập ở phía trước hàng Employee_Id, có nghĩa là Employee_Id được xác định thành công là KHÓA CHÍNH.

Ưu điểm của việc sử dụng PRIMARY KEY trong bảng:

  1. Truy cập nhanh vào dữ liệu từ bảng.
  2. Các giá trị trùng lặp không được phép trong các trường KHÓA CHÍNH.

Một cách khác để tạo KHÓA CHÍNH

CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );

Trong cùng một câu truy vấn như trên, chúng ta phải đề cập đến NOT NULL ở phía trước tên trường, được tạo là PRIMARY KEY, và cuối cùng, chúng ta phải viết từ khóa PRIMARY KEY và Field name trong ngoặc đơn giống như trên. truy vấn.

Tạo ràng buộc CHÍNH CHÍNH trên các trường khi bảng đã tồn tại

Sử dụng truy vấn sau:

ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);

Sử dụng truy vấn ALTER TABLE để xác định KHÓA CHÍNH, trường KHÓA CHÍNH đã được khai báo với ràng buộc NOT NULL.

KHÓA CHÍNH SQL trên Nhiều Cột

Truy vấn SQL sau tạo một KHÓA CHÍNH trên nhiều cột khi Bảng 'Sinh viên' được tạo.

CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));

Chỉ một KHÓA CHÍNH được tạo trong ví dụ trên Student_Id và Email.

Để kiểm tra xem KHÓA CHÍNH của chúng ta có được xác định thành công hay không, chúng ta có thể sử dụng lệnh DESC theo sau là tên bảng Sinh viên.

DESC Student;
Bộ phận
Fields Loại Không Phím Mặc định Thêm
Student_Id Int (11) KHÔNG PRI KHÔNG ĐẦY ĐỦ
Student_Name Varchar (40) KHÔNG ĐẦY ĐỦ
Varchar (40) KHÔNG ĐẦY ĐỦ
Phone_Number Int (10) KHÔNG ĐẦY ĐỦ
Email Varchar (100) KHÔNG PRI KHÔNG ĐẦY ĐỦ

Như chúng ta có thể thấy ở phía trước hàng Student_Id và Email, các trường Key PRI được đề cập, có nghĩa là Student_Id và Email được xác định thành công là KHÓA CHÍNH.

Bây giờ chúng ta sẽ thực hiện SHOW CREATE TABLE, theo sau là tên bảng Student, tên này sẽ mô tả bảng sinh viên.

SHOW CREATE TABLE Student;

Trong kết quả đầu ra ở trên, chúng ta có thể thấy rằng chỉ một KHÓA CHÍNH được tạo và trong ngoặc đơn, tên trường được đề cập, được tạo dưới dạng KHÓA CHÍNH trong khi tạo bảng.

Giả sử chúng ta muốn loại bỏ ràng buộc PRIMARY KEY khỏi bảng sinh viên. Chúng tôi sẽ sử dụng truy vấn sau để loại bỏ ràng buộc CHÍNH CHÍNH:

ALTER TABLE Student DROP PRIMARY KEY;

Để kiểm tra xem KHÓA CHÍNH của chúng tôi có được xóa thành công hay không, chúng tôi sẽ sử dụng lệnh DESC theo sau là tên bảng Sinh viên.

DESC Student;
Bộ phận
Fields Loại Không Phím Mặc định Thêm
Student_Id Int (11) KHÔNG KHÔNG ĐẦY ĐỦ
Student_Name Varchar (40) KHÔNG ĐẦY ĐỦ
Varchar (40) KHÔNG ĐẦY ĐỦ
Phone_Number Int (10) KHÔNG ĐẦY ĐỦ
Email Varchar (100) KHÔNG KHÔNG ĐẦY ĐỦ


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RowGen v3 Tự động hóa tạo dữ liệu kiểm tra cơ sở dữ liệu

  2. Xu hướng cơ sở dữ liệu năm 2019 - SQL so với NoSQL, Cơ sở dữ liệu hàng đầu, Sử dụng một cơ sở dữ liệu so với Nhiều cơ sở dữ liệu

  3. Làm thế nào để tính toán tỷ lệ duy trì trong SQL?

  4. Chú ý đến các ước tính

  5. API REST Python với Flask, Connexion và SQLAlchemy - Phần 2