najprościej mówiąc jest to kolumna bądź grupa kolumn w jednej tabeli stanowiących klucz główny w innej tabeli.
Klucz obcy (foreign key) służy do zapewnienia integralności danych - jeśli pojawiła się nowa wartość w kolumnie oznaczonej jako klucz obcy, oznacza to, że wartość ta musi istnieć w innej tabeli.
Wykorzystuje się go do tworzenia relacji między tabelami.
Co prawda najczęściej klucz obcy w SQL jest to odwołanie do klucza głównego w innej tabeli, jednak są inne możliwości.
klucz obcy może odwoływać się do kolumny w innej tabeli która nie jest oznaczona jako PRIMARY KEY, kolumna ta jednak musi być oznaczona jako UNIQUE (zapewnione unikatowe wartości w kolumnie bądź grupie kolumn)
klucz obcy może odwoływać się do kolumny z tej samej tabeli
Klucz obcy może odwoływać się jedynie do tabel w tej samej bazie danych. Integralność danych z innymi bazami danych trzeba wtedy zaimplementować przy pomocy wyzwalaczy (Trigger).
Przykłady SQL
Na początek tworzymy tabelę do której odwoływać się będą pozostałe tabele.
CREATETABLE Car (
Id INTPRIMARYKEY,-- klucz główny
Mark NVARCHAR(20))
Dodawanie klucza obcego podczas tworzenia tabeli
1 sposób
CREATETABLE MechanicalPart (
Id INTPRIMARYKEY,-- klucz główny
CarId INTFOREIGNKEYREFERENCES Car(Id),-- klucz obcy odwołujący się do tabeli Car
Name VARCHAR(15))
W tym przypadku nie podaliśmy nazwy dla stworzonego klucza obcego, więc SQL Server wygeneruje nazwę automatycznie, np. FK__Mechanica__CarId__5F7FC45A
2 sposób
CREATETABLE MechanicalPart (
Id INTPRIMARYKEY,-- klucz główny
CarId INT,
Name VARCHAR(15),CONSTRAINT FK_MechanicalPart_CarId FOREIGNKEY(CarId)REFERENCES Car(Id)-- klucz obcy odwołujący się do tabeli Car)
Dodawanie klucza obcego podczas aktualizowania tabeli
Korzystając z serwisu akceptujesz regulamin
oraz politykę prywatności.
Używamy informacji zapisanych za pomocą plików cookies w celu zapewnienia maksymalnej wygody w korzystaniu z naszego serwisu.
Jeśli nie wyrażasz zgody, ustawienia dotyczące plików cookies możesz zmienić w swojej przeglądarce.
FOREIGN KEY klucz obcy
najprościej mówiąc jest to kolumna bądź grupa kolumn w jednej tabeli stanowiących klucz główny w innej tabeli.
Klucz obcy (foreign key) służy do zapewnienia integralności danych - jeśli pojawiła się nowa wartość w kolumnie oznaczonej jako klucz obcy, oznacza to, że wartość ta musi istnieć w innej tabeli.
Wykorzystuje się go do tworzenia relacji między tabelami.
Co prawda najczęściej klucz obcy w SQL jest to odwołanie do klucza głównego w innej tabeli, jednak są inne możliwości.
Klucz obcy może odwoływać się jedynie do tabel w tej samej bazie danych. Integralność danych z innymi bazami danych trzeba wtedy zaimplementować przy pomocy wyzwalaczy (Trigger).
Przykłady SQL
Na początek tworzymy tabelę do której odwoływać się będą pozostałe tabele.
Dodawanie klucza obcego podczas tworzenia tabeli
1 sposób
W tym przypadku nie podaliśmy nazwy dla stworzonego klucza obcego, więc SQL Server wygeneruje nazwę automatycznie, np. FK__Mechanica__CarId__5F7FC45A
2 sposób
Dodawanie klucza obcego podczas aktualizowania tabeli