logo

Різниця між первинним ключем і унікальним ключем

Ключі в MySQL - це стовпець або набір стовпців, які використовуються для побудови зв'язку між однією або більше ніж двома таблицями. Вони також використовуються для доступу до записів із таблиці. Обидва ключі забезпечують гарантовану унікальність для стовпця або набору стовпців у таблиці чи відношенні. Основна відмінність між ними полягає в тому, що первинний ключ ідентифікує кожен запис у таблиці, а унікальний ключ запобігає повторюваним записам у стовпці, за винятком значення NULL. . У цій статті ми порівняємо істотні відмінності між первинними та унікальними ключами на основі різних параметрів. Перш ніж робити порівняння, ми коротко обговоримо ці ключі.

j e s t
Первинний ключ проти унікального ключа

Що таке первинний ключ?

Первинний ключ - це a унікальний або ненульовий ключ, який однозначно ідентифікує кожен запис у цій таблиці чи відношенні. Стовпець первинного ключа не може зберігати повторювані значення, тобто значення стовпця первинного ключа завжди унікальні. Його також називають a мінімальний супер ключ ; тому ми не можемо вказати більше одного первинного ключа в будь-якому зв’язку. На стовпець первинного ключа однієї таблиці може посилатися стовпець зовнішнього ключа іншої таблиці.

Наприклад , у нас є таблиця з назвою студентів з такими атрибутами, як Stud_ID, Roll_No, Name, Mobile та Email.

Первинний ключ проти унікального ключа

Ось тільки своє № рулону стовпець ніколи не може містити ідентичне значення NULL. Ми знаємо, що кожен учень має унікальний номер. Тому два студенти ніколи не можуть мати однаковий номер списку. Ця функція допомагає однозначно ідентифікувати кожен запис у базі даних. Отже, ми можемо зробити атрибут Roll_No первинним ключем.

Особливості первинного ключа

Нижче наведено основні основні ключові характеристики:

  • Стовпець первинного ключа не може містити повторювані значення.
  • Первинний ключ реалізує цілісність сутності таблиці.
  • Таблиця не може мати більше одного стовпця первинного ключа.
  • Ми можемо створити первинний ключ з одного або кількох полів таблиці.
  • Стовпець первинного ключа повинен мати обмеження NOT NULL.

Що таке унікальний ключ?

The унікальний ключ це один стовпець або комбінація стовпців у таблиці для унікальної ідентифікації записів бази даних. Унікальний ключ запобігає від зберігання повторювані значення в колонці. Таблиця може містити кілька унікальних ключових стовпців, на відміну від стовпця первинного ключа. Цей ключ подібний до первинного ключа, за винятком того, що одне значення NULL може зберігатися в стовпці унікального ключа. Унікальний ключ також називається унікальні обмеження і на нього можна посилатися зовнішнім ключем іншої таблиці.

Наприклад , давайте розглянемо ту саму таблицю з назвою студентів з такими атрибутами, як Stud_ID, Roll_No, Name, Mobile та Email.

команда chown
Первинний ключ проти унікального ключа

тут Stud_ID можна призначити як унікальне обмеження, оскільки кожен студент повинен мати унікальний ідентифікаційний номер. Якщо студент змінює коледж, у нього не буде студентського квитка. У цьому випадку запис може містити a НУЛЬ значення, оскільки обмеження унікального ключа дозволяє зберігати NULL, але воно має бути лише одним.

Особливості унікального ключа

Нижче наведено важливі унікальні ключові характеристики:

масив у рядку
  • Ми можемо створити унікальний ключ з одного або кількох полів таблиці.
  • Таблиця може визначати кілька унікальних ключових стовпців.
  • За замовчуванням унікальний ключ знаходиться в некластеризованих унікальних індексах.
  • Стовпець унікального обмеження може зберігати значення NULL, але лише один NULL дозволений null на стовпець.
  • Зовнішній ключ може посилатися на унікальне обмеження для збереження унікальності таблиці.

Ключові відмінності між первинним та унікальним ключем

Наступні пункти пояснюють ключові відмінності між первинним і потенційним ключами:

  • Первинний ключ може становити одне або кілька полів таблиці для унікальної ідентифікації записів у таблиці. З іншого боку, унікальний ключ запобігає дублюванню записів у двох рядках у стовпці.
  • Таблиця не може мати більше одного первинного ключа в реляційній базі даних, тоді як у таблиці може бути кілька унікальних ключів.
  • Стовпець первинного ключа не може містити значення NULL, тоді як унікальний ключ може мати значення NULL, але в таблиці допускається лише один NULL.
  • Первинний ключ має бути унікальним, але унікальний ключ не обов’язково може бути первинним ключем.
  • Первинний ключ за замовчуванням є кластерним індексом, де дані фізично організовані в послідовному індексі. Навпаки, унікальний ключ є унікальним некластерним індексом.
  • Первинний ключ реалізує цілісність сутності, тоді як унікальний ключ забезпечує дотримання унікальних даних.

Таблиця порівняння первинного ключа та унікального ключа

У наведеній нижче порівняльній таблиці швидко пояснюються їхні основні відмінності:

Основа порівняння Первинний ключ Унікальний ключ
Базовий Первинний ключ використовується як унікальний ідентифікатор для кожного запису в таблиці. Унікальний ключ також є унікальним ідентифікатором для записів, коли первинний ключ відсутній у таблиці.
НУЛЬ Ми не можемо зберігати значення NULL у стовпці первинного ключа. Ми можемо зберігати значення NULL в стовпці унікального ключа, але дозволено лише одне значення NULL.
призначення Це забезпечує цілісність сутності. Він забезпечує дотримання унікальних даних.
Індекс Первинний ключ за замовчуванням створює кластерний індекс. Унікальний ключ за замовчуванням створює некластерний індекс.
Номер ключа Кожна таблиця підтримує лише один первинний ключ. Таблиця може мати більше одного унікального ключа.
Модифікація значення Ми не можемо змінити або видалити значення первинного ключа. Ми можемо змінювати унікальні ключові значення стовпців.
Використання Він використовується для ідентифікації кожного запису в таблиці. Це запобігає збереженню повторюваних записів у стовпці, за винятком значення NULL.
Синтаксис Ми можемо створити стовпець первинного ключа в таблиці, використовуючи наведений нижче синтаксис:
CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) )
Ми можемо створити унікальний ключовий стовпець у таблиці, використовуючи наведений нижче синтаксис:
CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) )

Висновок

У цій статті ми порівняли обмеження первинного ключа та унікального ключа. Тут ми дійшли висновку, що унікальний ключ корисний, коли ми хочемо, щоб стовпці не містили повторюваних значень. А первинний ключ корисний, коли ми не хочемо зберігати значення NULL у таблиці. Це також може бути ідеальним, якщо у нас є зовнішній ключ в іншій таблиці для створення зв’язку між таблицями.