Първичен ключ срещу външен ключ: Каква е разликата?

Съдържание:

Anonim

Преди да научим разликата между първичен ключ и външен ключ, нека научим:

Какво представляват ключовете?

Ключовете са атрибут, който ви помага да идентифицирате ред (кортеж) в релация (таблица). Те ви позволяват да намерите връзката между две таблици. Клавишите ви помагат да идентифицирате уникално ред в таблица чрез комбинация от една или повече колони в тази таблица. Ключът към базата данни също е полезен за намиране на уникален запис или ред от таблицата.

Какво представлява връзката с база данни?

Връзката с базата данни е асоциации между една или повече таблици, които са създадени с помощта на оператори за присъединяване. Използва се за ефективно извличане на данни от базата данни. Има предимно три типа връзки 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 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Тук,

  • Параметърът Име на таблицата показва името на таблицата, която ще създадете.
  • Параметрите колона1, колона2 ... изобразяват колоните, които трябва да бъдат добавени към таблицата.
  • Ограничението обозначава името на ограничението, което създавате.
  • Референциите показват таблица с първичния ключ.

Пример:

DeptCode DeptName
001 Наука
002 Английски
005 Компютър
Идентификатор на учителя Fname Lname
B002 Дейвид Уорнър
B017 Сара Йосиф
B009 Майк Брантън

В горния пример имаме две маси, учител и отдел в училище. Няма начин обаче да се види кое търсене работи в кой отдел.

В тази таблица, добавяйки външния ключ в Deptcode към името на учителя, можем да създадем връзка между двете таблици.

Идентификатор на учителя DeptCode Fname Lname
B002 002 Дейвид Уорнър
B017 002 Сара Йосиф
B009 001 Майк Брантън

Тази концепция е известна още като референтна цялост.

Разлика между първичен ключ и външен ключ

Ето важната разлика между първичен ключ и външен ключ:

Първичен ключ Външен ключ
Ограничението за първичен ключ е колона или група колони, които уникално идентифицират всеки ред в таблицата на системата за управление на релационна база данни. Външен ключ е колона, която създава връзка между две таблици.
Помага ви да идентифицирате уникално запис в таблицата. Това е поле в таблицата, което е първичен ключ на друга таблица.
Първичният ключ никога не приема нулеви стойности. Чуждестранният ключ може да приеме множество нулеви стойности.
Първичният ключ е клъстериран индекс и данните в таблицата на СУБД са физически организирани в последователността на клъстерирания индекс. Чуждестранният ключ не може автоматично да създаде индекс, клъстериран или неклъстериран.
Можете да имате единичен първичен ключ в таблица. Можете да имате множество външни ключове в таблица.
Стойността на първичния ключ не може да бъде премахната от родителската таблица. Стойността на стойността на външния ключ може да бъде премахната от дъщерната таблица.
Можете да дефинирате първичния ключ имплицитно на временните таблици. Не можете да дефинирате външни ключове на локалните или глобалните временни таблици.
Първичният ключ е клъстериран индекс. По подразбиране това не е клъстериран индекс.
Нито два реда не могат да имат идентични стойности за първичен ключ. Външният ключ може да съдържа дублирани стойности.
Няма ограничение за вмъкване на стойностите в колоната на таблицата. Докато вмъквате каквато и да е стойност в таблицата на външния ключ, уверете се, че стойността присъства в колона на първичен ключ.