Външните ключове позволяват на администраторите на бази данни лесно да идентифицират различните връзки, които съществуват в системата за управление на база данни на SQL.

SQL извършва математически операции с данни в системата за управление на база данни. Тези бази данни съдържат различни таблици, в които всяка се съхраняват данни за определен обект. Ако имате база данни за коли под наем, обект (или таблица) в тази база данни ще бъдат клиенти (които ще съхраняват всички лични данни за всеки клиент).

Тези таблици на базата данни съдържат редове и колони, където всеки ред съдържа запис и всяка колона съдържа специфични за атрибутите данни.

В система за управление на база данни всеки запис (или ред) трябва да бъде уникален.

Основни ключове

Въпреки че уговорката е, че всеки запис в таблица трябва да бъде различен, това не винаги е така. Продължавайки с примера на базата данни за коли под наем, ако базата данни съдържа двама клиенти, всеки от които имат името "Джон Браун", може да се очаква Джон Браун да върне Mercedes-Benz, но той не го е направил под наем.

instagram viewer

Създаването на първичен ключ ще намали този риск. В система за управление на база данни на SQL първичен ключ е уникален идентификатор, който отличава един запис от друг.

Следователно всеки запис в SQL система за управление на база данни трябва да има първичен ключ.

Използване на първични ключове в база данни

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

  • CarOwnerID (който ще съхранява първичния ключ)
  • Първо име
  • Фамилия
  • Телефонен номер

Свързани: Как да създадете таблица в SQL

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

Запис с пример за първичен ключ

/ * създава нов запис в таблицата на клиентите * /
ВЪВЕДЕТЕ В СТОЙНОСТИ НА КЛИЕНТИТЕ
('0004',
'Джон',
"Кафяв",
'111-999-5555');

SQL кодът по-горе ще добави нов запис към вече съществуващия Клиенти маса. Таблицата по-долу показва новата таблица на клиентите с двата записа на Джон Браун.

Външният ключ

Сега имате първични ключове, които уникално отличават един наемател на кола от друг. Единственият проблем е, че в базата данни няма реална връзка между всеки Джон Браун и колата, която той наема.

Следователно възможността за грешка все още съществува. Тук влизат в действие чужди ключове. Използването на първичен ключ за решаване на проблема с неяснотата на собствеността е постижимо само ако първичният ключ се удвои като външен ключ.

Какво е външен ключ?

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

От четирите съществуващи системи за управление на база данни на SQL най-популярната е системата за управление на релационни бази данни. Когато решавате коя таблица в релационна база данни трябва да има външен ключ, първо трябва да идентифицирате коя таблица е предмет и кой е обект в тяхната връзка.

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

SQL кодът, който генерира таблица с външен ключ, е малко по-различен от нормата.

Създаване на таблица с пример за външен ключ

/ * създава нова таблица за автомобили в базата данни за коли под наем * /
СЪЗДАЙТЕ МАСА Автомобили
(
Номер на лиценз varchar (30) НЕ НУЛЕН ОСНОВЕН КЛЮЧ,
CarType varchar (30) NOT NULL,
CustomerID varchar (30) ВЪНШНИ КЛЮЧОВИ РЕФЕРЕНЦИИ Клиенти (CustomerID)
);

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

Свързани: Основна таблица с команди за SQL за начинаещи

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

Добавяне на запис с пример за външен ключ

/ * създава нов запис в таблицата за автомобили * /
ВЪВЕДЕТЕ В СТОЙНОСТИ за автомобили
('100012',
„Mercedes-Benz“,
'0004');

Кодът по-горе създава нов запис в новия Автомобили таблица, даваща следния резултат.

Таблица за коли

От таблицата по-горе можете да идентифицирате правилния Джон Браун, който наема Mercedes-Benz под външния ключ в записа.

Предварителни чужди ключове

Има два други начина за използване на външен ключ в база данни.

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

Връщайки се към примера на базата данни за коли под наем, ще видите, че създаването на нов запис (за същия автомобил) всеки път, когато клиент наеме тази кола, поражда целта Автомобили маса. Ако автомобилите се продават и се продават на един клиент веднъж, съществуващата база данни е перфектна; но като се има предвид, че колите се отдават под наем, има по-добър начин да се представят тези данни.

Композитни ключове

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

В примера за коли под наем най-практичният подход е да се създаде нова таблица, която съхранява подробности за наема. За да бъде полезна информацията в таблицата за коли под наем, тя трябва да се свърже както с таблицата на автомобила, така и с клиентите.

Създаване на таблица с композитни чужди ключове

/ * създава таблица CarRental в базата данни за коли под наем * /
СЪЗДАВАНЕ НА МАСА CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NOT NULL ЧУЖДЕСТРАННИ КЛЮЧОВИ РЕФЕРЕНЦИИ Автомобили (LicenseNumber),
CustomerID varchar (30) НЕ НУЛИ ВЪНШНИ КЛЮЧОВИ РЕФЕРЕНЦИИ Клиенти (CustomerID),
ПЪРВИЧЕН КЛЮЧ (DateRented, LicenseNumber, CustomerID)
);

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

Необходимо е да комбинирате и трите атрибута в таблицата, за да имате уникален ключ. Клиент може да наеме повече от една кола в един и същи ден (така че Клиентски номер и Дата под наем не е добра комбинация) повече от един клиент може също да наеме една и съща кола в един и същи ден (така че Номер на лиценза и Дата под наем не е добра комбинация).

Създаването на композитен ключ обаче, който казва кой клиент, каква кола и в кой ден прави отличен уникален ключ. Този уникален ключ представлява както комбиниран външен ключ, така и композитен първичен ключ.

Чуждестранни първични ключове

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

Кажете Фред (който работи във фирмата за коли под наем) е в базата данни на компанията под таблицата на служителите. След няколко години той става супервизор и се добавя към таблицата на супервизора.

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

Сега можете да идентифицирате чужди ключове в SQL бази данни

Външните ключове свързват различни таблици в SQL база данни. От тази статия можете да видите какво е външен ключ, как работи и защо е важно да ги имате в база данни. Разбирате и основните и дори по-сложни форми на чужди ключове.

Ако смятате, че чуждите ключове са интересни, ще имате ден на полето, когато започнете да използвате проекта и операциите по подбор, за да заявите вашите SQL бази данни.

електронна поща
Научете как да използвате операциите за проектиране и подбор в SQL

Запознайте се с релационните бази данни на SQL, като разберете операциите Project и Selection с тези примери.

Прочетете Напред

Свързани теми
  • Програмиране
  • Програмиране
  • SQL
  • база данни
За автора
Кадейша Кийн (14 статии публикувани)

Kadeisha Kean е разработчик на софтуер с пълен стек и писател на технически и технологични технологии. Тя има отчетливата способност да опростява някои от най-сложните технологични концепции; производство на материал, който може лесно да бъде разбран от всеки новак в технологията. Тя е запалена по писането, разработването на интересен софтуер и пътуването по света (чрез документални филми).

Още от Кадейша Кийн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.