Klucz obcy (FOREIGN KEY) to kolumna lub zestaw kolumn w jednej tabeli, które odwołują się do klucza głównego albo unikalnego w innej tabeli. Służy do tworzenia relacji między tabelami i zapewniania integralności referencyjnej.

Przykład relacji
Tabela klienci:
CREATE TABLE klienci (
id_klienta INT PRIMARY KEY,
imie VARCHAR(50)
);
Tabela zamowienia:
CREATE TABLE zamowienia (
id_zamowienia INT PRIMARY KEY,
id_klienta INT,
FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)
);
Kolumna id_klienta w tabeli zamowienia jest kluczem obcym. Oznacza to, że zamówienie może być przypisane tylko do klienta istniejącego w tabeli klienci.
Klucz obcy a klucz główny
Klucz główny identyfikuje rekord w swojej tabeli. Klucz obcy wskazuje rekord w innej tabeli.
Nie jest prawdą, że każdy klucz główny musi mieć odpowiadający klucz obcy w innej tabeli. Tabela może mieć klucz główny i nie być wskazywana przez żadną inną tabelę.
Znaczenie w bazie danych
Klucze obce pomagają unikać błędów, takich jak zamówienie przypisane do nieistniejącego klienta. Dotyczą jednak głównie integralności referencyjnej, a nie integralności encji.