Перш ніж вивчати різницю між первинним та зовнішнім ключами, давайте дізнаємось:
Що таке ключі?
Ключі - це атрибут, який допомагає ідентифікувати рядок (кортеж) у відношенні (таблиці). Вони дозволяють знайти взаємозв'язок між двома таблицями. Клавіші допомагають однозначно ідентифікувати рядок у таблиці за допомогою комбінації одного або декількох стовпців у цій таблиці. Ключ бази даних також корисний для пошуку унікального запису або рядка з таблиці.
Що таке взаємозв'язок з базою даних?
Зв'язок бази даних - це асоціації між однією або кількома таблицями, які створюються за допомогою операторів join. Він використовується для ефективного отримання даних з бази даних. Існує насамперед три типи відносин: 1) "Один до одного", 2) "Один до багатьох", 3) "Багато до багатьох".
Що таке первинний ключ?
Обмеження первинного ключа - це стовпець або група стовпців, які однозначно ідентифікують кожен рядок у таблиці реляційної системи управління базами даних. Він не може бути дублікатом, тобто одне і те ж значення не повинно з’являтися більше одного разу в таблиці.
У таблиці може бути більше одного первинного ключа. Первинний ключ можна визначити на рівні стовпця або таблиці. Якщо ви створюєте складений первинний ключ, його слід визначити на рівні таблиці.
Що таке зовнішній ключ?
Зовнішній ключ - це стовпець, який створює взаємозв'язок між двома таблицями. Призначення Зовнішнього ключа полягає у підтримці цілісності даних та дозволі навігації між двома різними екземплярами сутності. Він діє як перехресне посилання між двома таблицями, оскільки посилається на первинний ключ іншої таблиці. Кожне відношення в базі даних повинно підтримуватися зовнішнім ключем.
ОСНОВНІ ВІДМІННОСТІ:
- Обмеження первинного ключа - це стовпець, який однозначно ідентифікує кожен рядок у таблиці системи управління реляційними базами даних, тоді як зовнішній ключ - це стовпець, який створює зв'язок між двома таблицями.
- Первинний ключ ніколи не приймає нульові значення, тоді як зовнішній ключ може приймати кілька нульових значень.
- Ви можете мати лише один первинний ключ у таблиці, тоді як у вас може бути кілька зовнішніх ключів у таблиці.
- Значення первинного ключа не можна видалити з батьківської таблиці, тоді як значення зовнішнього ключа можна видалити з дочірньої таблиці.
- Жодні два рядки не можуть мати однакових значень для первинного ключа, з іншого боку, зовнішній ключ може містити повторювані значення.
- Немає обмежень для вставки значень у стовпець таблиці під час вставки будь-якого значення в таблицю зовнішнього ключа, переконайтесь, що значення присутнє у стовпці первинного ключа.
Навіщо використовувати первинний ключ?
Ось мінуси / переваги використання первинного ключа:
- Головною метою первинного ключа є ідентифікація кожного запису в таблиці бази даних.
- Ви можете використовувати первинний ключ, коли не дозволяєте комусь вводити нульові значення.
- Якщо ви видалите або оновите записи, буде виконано вказану вами дію для забезпечення цілісності даних.
- Виконайте операцію обмеження, щоб відхилити операцію видалення або оновлення для батьківської таблиці.
- Дані упорядковуються в послідовність кластерного індексу, коли ви фізично впорядковуєте таблицю СУБД.
Навіщо використовувати зовнішній ключ?
Ось важливі причини використання зовнішнього ключа:
- Зовнішні ключі допомагають переносити сутності за допомогою первинного ключа з батьківської таблиці.
- Зовнішній ключ дозволяє зв’язати дві або більше таблиці разом.
- Це робить дані вашої бази даних послідовними.
- Зовнішній ключ можна використовувати для зіставлення стовпця або комбінації стовпців з первинним ключем у батьківській таблиці.
- Обмеження зовнішнього ключа SQL використовується для того, щоб переконатися, що цілісність батьківських даних відповідає значенням у дочірній таблиці.
Приклад первинного ключа
Синтаксис:
Нижче наведено синтаксис первинного ключа:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Ось,
- Ім'я таблиці - це назва таблиці, яку потрібно створити.
- Ім'я стовпця - ім'я стовпця, що має первинний ключ.
Приклад:
StudID | Рулон No | Ім'я | Прізвище | Електронна пошта |
---|---|---|---|---|
1 | 11 | Том | Ціна | Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його. |
2 | 12 | Нік | Райт | Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його. |
3 | 13 | Дана | Натан | Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його. |
У наведеному вище прикладі ми створили таблицю студентів із такими стовпцями, як StudID, Roll No, Ім'я, Прізвище та Електронна пошта. StudID вибрано як первинний ключ, оскільки він може однозначно ідентифікувати інші рядки в таблиці.
Приклад зовнішнього ключа
Синтаксис:
Нижче наведено синтаксис зовнішнього ключа:
CREATE TABLE