Преди да научим разликата между първичен ключ и външен ключ, нека научим:
Какво представляват ключовете?
Ключовете са атрибут, който ви помага да идентифицирате ред (кортеж) в релация (таблица). Те ви позволяват да намерите връзката между две таблици. Клавишите ви помагат да идентифицирате уникално ред в таблица чрез комбинация от една или повече колони в тази таблица. Ключът към базата данни също е полезен за намиране на уникален запис или ред от таблицата.
Какво представлява връзката с база данни?
Връзката с базата данни е асоциации между една или повече таблици, които са създадени с помощта на оператори за присъединяване. Използва се за ефективно извличане на данни от базата данни. Има предимно три типа връзки 1) Едно към едно, 2) Едно към много, 3) Много към много.
Какво е първичен ключ?
Ограничението за първичен ключ е колона или група колони, които уникално идентифицират всеки ред в таблицата на системата за управление на релационна база данни. Не може да бъде дубликат, което означава, че една и съща стойност не трябва да се появява повече от веднъж в таблицата.
Таблица може да има повече от един първичен ключ. Първичният ключ може да бъде дефиниран на ниво колона или таблица. Ако създадете композитен първичен ключ, той трябва да бъде дефиниран на ниво таблица.
Какво е външен ключ?
Външен ключ е колона, която създава връзка между две таблици. Целта на външния ключ е да поддържа целостта на данните и да позволява навигация между два различни екземпляра на обект. Той действа като кръстосана препратка между две таблици, тъй като се позовава на първичния ключ на друга таблица. Всяка връзка в базата данни трябва да се поддържа от външен ключ.
КЛЮЧОВИ РАЗЛИКИ:
- Ограничението за първичен ключ е колона, която уникално идентифицира всеки ред в таблицата на системата за управление на релационна база данни, докато външният ключ е колона, която създава връзка между две таблици.
- Първичният ключ никога не приема нулеви стойности, докато външният ключ може да приеме множество нулеви стойности.
- Можете да имате само един първичен ключ в таблица, докато можете да имате множество външни ключове в таблица.
- Стойността на първичния ключ не може да бъде премахната от родителската таблица, докато стойността на стойността на външния ключ може да бъде премахната от дъщерната таблица.
- Нито два реда не могат да имат идентични стойности за първичен ключ, от друга страна външният ключ може да съдържа дублирани стойности.
- Няма ограничение за вмъкване на стойностите в колоната на таблицата, докато вмъквате каквато и да е стойност в таблицата на външния ключ, уверете се, че стойността присъства в колона на първичен ключ.
Защо да използвам първичен ключ?
Ето минусите / ползите от използването на първичен ключ:
- Основната цел на първичния ключ е да идентифицира всеки запис в таблицата на базата данни.
- Можете да използвате първичен ключ, когато не разрешавате на някой да въвежда нулеви стойности.
- Ако изтриете или актуализирате записите, действието, което сте посочили, ще бъде предприето, за да се гарантира целостта на данните.
- Извършете операция за ограничаване, за да отхвърлите операцията за изтриване или актуализиране за родителската таблица.
- Данните са организирани в последователност от клъстериран индекс, когато физически организирате таблицата на СУБД.
Защо да използвам чужд ключ?
Ето важните причини за използването на външен ключ:
- Външните ключове ви помагат да мигрирате обекти, използвайки първичен ключ от родителската таблица.
- Външен ключ ви позволява да свързвате две или повече таблици заедно.
- Това прави данните от вашата база данни последователни.
- Външен ключ може да се използва за съвпадение на колона или комбинация от колони с първичен ключ в родителска таблица.
- Ограничението за външен ключ на SQL се използва, за да се гарантира, че референтната цялост на родителя на данните съответства на стойностите в дъщерната таблица.
Пример за първичен ключ
Синтаксис:
По-долу е синтаксисът на първичен ключ:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Тук,
- Table_Name е името на таблицата, която трябва да създадете.
- Column_Name е името на колоната с първичен ключ.
Пример:
StudID | Roll No | Първо име | Фамилия | електронна поща |
---|---|---|---|---|
1 | 11. | Том | Цена | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
2 | 12 | Ник | Райт | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
3 | 13 | Дана | Натан | Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите. |
В горния пример създадохме студентска таблица с колони като StudID, Roll No, First Name, Last Name и Email. StudID е избран за първичен ключ, тъй като той може уникално да идентифицира други редове в таблицата.
Пример за външен ключ
Синтаксис:
По-долу е синтаксисът на Външен ключ:
CREATE TABLE