Sự khác biệt cơ bản giữa primary key và unique key là primary key không đồng ý giá trị NULL trong những lúc giá trị NULL được được chấp nhận trong các ràng buộc unique key.
Bảng so sánh
Tiêu chí Primary key Unique key Công dụng Nó được sử dụng để làm định danh duy nhất cho từng hàng trong bảng. Nó cũng xác định duy nhất một hàng, nhưng không là khóa chính. NULL không đồng ý giá trị NULL đồng ý giá trị NULL Số lượng khóa có thể được xác định trong bảng Chỉ có duy nhất 1 primary key trong một bảng Có thể nhiều hơn 1 Index Tạo chỉ mục theo nhóm Tạo chỉ mục không phân cụm
Primary key
Một cột có thể được gọi là primary key của bảng nếu nó xác định duy nhất từng bộ (hàng) trong bảng đó. Nó thực thi các ràng buộc toàn vẹn khi đối chiếu với bảng. Chỉ có một primary key trong một bảng. Primary key không đồng ý các giá trị trùng lặp và NULL. Primary key được chọn cẩn thận lúc các thay đổi có thể xẩy ra Theo phong cách hiếm khi xẩy ra, có tức thị khóa chính trong bảng rất hiếm khi thay đổi.
Hãy hiểu khái niệm về primary key với thông qua ví dụ sau. Ở đây tất cả chúng ta đang tạo một bảng mang tên là bảng Student, bảng này có những tính chất như Roll_number, Name, Batch, Phone_number, Citizen_ID.
Trong ví dụ này, Roll_number không bao giờ được có mức giá trị y sì nhau và NULL, bởi vì mọi student đăng ký vào trong 1 trường ĐH có một Roll_number duy nhất. Không có hai student nào có thể có cùng Roll_number và mỗi hàng trong bảng được xác định duy nhất bằng Roll_number của student. Vì vậy, tất cả chúng ta có thể đặt tính chất Roll_number làm primary key trong trường hợp cụ thể này.
Primary key có thể được tham chiếu bằng foreign key. Nó tạo ra một chỉ mục nhóm duy nhất trên bảng. Trong một chỉ mục được phân nhóm, các hàng tài liệu được sắp xếp và lưu trữ trong một bảng hoặc các views trên cơ sở các giá trị chính của nó. Chỉ có thể có một chỉ mục nhóm trong một bảng, lý do đằng sau điều này là một hàng tài liệu trong bảng chỉ có thể được sắp xếp theo một trật tự.
Unique key
Tương tự như primary key, ràng buộc unique key cũng xác định duy nhất một bộ giá trị riêng lẻ trong một quan hệ. Nhưng, có những khác biệt nhất định giữa chúng. Một bảng có thể có nhiều hơn một khóa duy nhất. Ràng buộc unique key chỉ có thể đồng ý một giá trị NULL cho một cột.
Hãy hiểu điều này với ví dụ tương tự, trong đó tất cả chúng ta có bảng Student với những tính chất Roll_number, Name, Batch, Phone_number và Citizen_ID. Tính chất Roll_number được gán primary key.
Tại đây, Citizen_ID có thể được chỉ định với những ràng buộc duy nhất trong đó mỗi mục trong cột Citizen_ID phải là duy nhất, không được trùng lặp vì mỗi công dân của một quốc gia phải có số nhận dạng duy nhất của mình. Tuy nhiên, nếu một student di trú từ một quốc gia khác, trong trường hợp đó, họ sẽ không còn có Citizen_ID và mục nhập có thể có mức giá trị NULL vì một NULL được được chấp nhận trong ràng buộc duy nhất.
Các ràng buộc duy nhất cũng được tham chiếu bởi foreign key. Nó có thể được sử dụng khi ai đó muốn thực thi các ràng buộc trên một cột và một nhóm các cột không phải là primary key. Không như primary key, nó tạo chỉ mục không phân cụm. Các chỉ mục không phân cụm có cấu trúc khác biệt với những hàng tài liệu. Mỗi mục nhập khóa-giá trị trong đó trỏ đến hàng tài liệu chứa giá trị khóa do đó nó sử dụng con trỏ.
Tổng kết
Primary key và unique key đều phục vụ mục tiêu của một mã định danh duy nhất cho những hàng của bảng với những giá trị duy nhất trong một cột hoặc nhóm cột. Các ràng buộc khóa này được phân biệt đáng kể khi mỗi bảng có thể có nhiều nhất một khóa chính trong những lúc một bảng có thể có nhiều unique key không phải là primary key.