W poleceniu CREATE TABLE klucz podstawowy definiuje się przez ograniczenie PRIMARY KEY. Oznacza to, że wskazana kolumna (albo kilka kolumn jako klucz złożony) ma jednoznacznie identyfikować każdy rekord w tabeli.
Odpowiedź PRIMARY KEY jest poprawna, ponieważ:
- definiuje klucz podstawowy tabeli,
- wymusza unikalność wartości w kluczu,
- nie dopuszcza wartości NULL w kolumnach należących do klucza,
- jest standardowym mechanizmem, do którego odwołują się klucze obce (FOREIGN KEY) w relacjach między tabelami.
Pozostałe propozycje są błędne z typowych powodów egzaminacyjnych:
- MAIN KEY nie jest standardowym słowem kluczowym SQL dla klucza podstawowego; brzmi intuicyjnie, ale nie występuje jako poprawna składnia ograniczenia.
- UNIQUE tworzy ograniczenie unikalności, ale nie jest tym samym co klucz podstawowy. W tabeli można mieć wiele ograniczeń UNIQUE, natomiast klucz podstawowy jest tylko jeden (może być złożony). Ponadto PRIMARY KEY ma dodatkową semantykę identyfikatora encji.
- IDENTITY FIELD nie jest ogólnym atrybutem definiującym klucz podstawowy; pojęcia typu IDENTITY dotyczą zwykle automatycznego generowania wartości (np. autoinkrementacji) w niektórych systemach, a nie samego wskazania PK. Kolumna może być generowana automatycznie i jednocześnie być PRIMARY KEY, ale to są dwa różne aspekty definicji.
W praktyce projektowej najczęściej spotkasz zapis w stylu: id INT PRIMARY KEY albo osobno jako constraint tabeli. Na egzaminie warto pamiętać, że pytanie dotyczy wskazania klucza podstawowego, więc szukasz właśnie PRIMARY KEY.