KHÓA CHÍNH SQL: Cách tạo và thêm vào bảng hiện có

Khóa chính trong SQL là gì?

Khóa chính là một trường hoặc tổ hợp các trường xác định một bản ghi duy nhất. Khóa chính là một cột hoặc tập hợp các cột duy nhất. Nói cách khác, mọi giá trị là duy nhất cho Khóa chính.

Quy tắc cho khóa chính

  • Mỗi bảng chỉ có thể có một Khóa chính SQL.
  • Tất cả các giá trị là duy nhất và giá trị SQL khóa chính có thể xác định duy nhất từng hàng.
  • Hệ thống sẽ không cho phép chèn một hàng có Khóa chính của SQL Server đã tồn tại trong bảng.
  • Khóa chính không thể là NULL.

Sơ đồ dưới đây tóm tắt tất cả các điểm trên cho Khóa chính SQL.

Quy tắc khóa chính trong SQL
SQL khóa chính hoạt động như thế nào

Cách tạo khóa chính trong SQL Server

Chúng ta có thể tạo khóa chính trong 2 cách:

1. Xưởng quản lý máy chủ SQL

2. T-SQL: Tạo Primary trong khi tạo Bảng mới

Xưởng quản lý máy chủ SQL

Bước 1) Nhấp chuột phải vào tên Bảng. Bấm vào Thiết kế.

Tạo khóa chính trong SQL Server

Bước 2) Nhấp chuột phải vào tên Cột. Bấm vào 'Đặt khóa chính'

Tạo khóa chính trong SQL Server

Kết quả: Course_Id hiện là một Khóa chính.

Tạo khóa chính trong SQL Server

T-SQL: Tạo khóa chính trong khi tạo Bảng mới.

Dưới đây là cú pháp tạo bảng với Primary Key từ T-SQL

Cú pháp:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Hãy tạo một Bảng có một cột làm Khóa chính SQL.

truy vấn:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Bước 1) Chạy truy vấn bằng cách nhấp vào 'Hành hình.'

Tạo khóa chính trong khi tạo Bảng mới

Kết quả: Course_Id hiện là một Khóa chính.

Tạo khóa chính trong khi tạo Bảng mới

Ví dụ: Hãy xem liệu nó có cho phép nhập nhiều bản ghi với cùng một ID khóa học hay không.

Bước 1) Chèn 4 hàng với khóa học_ID khác

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Bước 2) Xác minh tất cả Dữ liệu được chèn thành công bằng cách chạy truy vấn Chọn.

Tạo khóa chính trong khi tạo Bảng mới

Chú thích: Chúng ta có thể chèn các giá trị trùng lặp vào khóa Không chính.

Bước 3) Bây giờ hãy thử Chèn bản ghi mới với Course_ID hiện có là Khóa chính.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Kết quả: Hệ thống không cho phép chèn giá trị mới vì cột Course_ID là 4, là Khóa chính.

Tạo khóa chính trong khi tạo Bảng mới

Làm cách nào để thêm khóa chính vào bảng hiện có trong SQL?

Bây giờ chúng ta sẽ xem cách thêm Khóa chính vào bảng hiện có trong SQL:

Bạn có thể sử dụng câu lệnh ALTER để tạo khóa chính. Tuy nhiên, khóa chính chỉ có thể được tạo trên các cột được xác định là NOT NULL. Bạn không thể tạo khóa chính trên cột cho phép NULL. Nếu cần, bạn phải thả và tạo lại bảng.

Đây là cú pháp:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Ví dụ:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

Thêm khóa chính vào bảng hiện có trong SQL

Chúng tôi đã thêm ràng buộc khóa chính vào một bảng đã tồn tại. Ràng buộc đã được thêm vào cột nhập học và được gán tên là Students_pk.

Sự thật thú vị!

  • Khóa chính có thể là sự kết hợp của nhiều cột. Sự kết hợp này được gọi là Khóa chính tổng hợp.
  • Khóa chính có thể có tối đa 16 cột.

Tổng kết

  • Mỗi Bảng chỉ có thể có một Khóa chính
  • Tất cả các giá trị là duy nhất có thể xác định duy nhất mỗi hàng.