Przejdź do głównej treści

Klucz obcy w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest klucz obcy w SQL?

Klucz obcy to kolumna lub zestaw kolumn w jednej tabeli, które wskazują na klucz główny w innej tabeli. Służy do tworzenia relacji między tabelami i pilnowania spójności danych.

Infografika przedstawiająca działanie klucza obcego w SQL: po lewej tabela klienci z kluczem głównym id, po prawej tabela zamowienia z kluczem obcym klient_id wskazującym na klucz główny w tabeli klienci.

Przykład:

rezyserzy
- id        ← klucz główny
- imie
- nazwisko

filmy
- id        ← klucz główny
- tytul
- rezyserID ← klucz obcy

Kolumna filmy.rezyserID przechowuje identyfikator reżysera z tabeli rezyserzy. Oznacza to, że film jest przypisany do konkretnego reżysera.

Klucz obcy a JOIN

Podczas łączenia tabel w zapytaniu SELECT najczęściej zestawia się klucz obcy z kluczem głównym:

SELECT *
FROM filmy
JOIN rezyserzy
ON filmy.rezyserID = rezyserzy.id;

To oznacza: połącz film z tym reżyserem, którego id jest zapisane w kolumnie rezyserID.

Po co stosuje się klucze obce?

  • umożliwiają tworzenie relacji między tabelami,
  • ograniczają powielanie danych,
  • pomagają zachować integralność danych,
  • ułatwiają poprawne łączenie tabel w zapytaniach.

Ważne na egzaminie

Jeżeli w zadaniu podano, że tabela filmy ma klucz obcy rezyserID, a tabela rezyserzy ma klucz główny id, to warunek połączenia powinien wyglądać tak:

filmy.rezyserID = rezyserzy.id