KWALIFIKACJA INF3 - CZERWIEC 2024 (test 2)

PYTANIE NR 20.
W bazie danych MySQL utworzono tabelę. Aby jednoznacznie zdefiniować, że pole ID jest kluczem głównym, należy dopisać
Ilustracja przedstawia fragment kodu SQL, który jest przykładem tworzenia tabeli w bazie danych MySQL.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna składnia definicji klucza głównego w CREATE TABLE wymaga użycia ograniczenia PRIMARY KEY wskazującego kolumnę ID. Zapis PRIMARY KEY (ID) dodany w definicji tabeli jednoznacznie ustanawia unikatowość i niepustość identyfikatora, czego nie zapewniają skróty typu PK ani FOREIGN KEY.

Pełne wyjaśnienie:

Klucz główny (primary key) to ograniczenie, które identyfikuje każdy rekord w tabeli w sposób jednoznaczny. W MySQL definiuje się go w instrukcji CREATE TABLE poprzez użycie słów kluczowych PRIMARY KEY oraz wskazanie kolumny (lub kolumn), które mają pełnić tę rolę. Dlatego zapis PRIMARY KEY (ID) jest właściwy: wprost ustanawia ograniczenie klucza głównego dla kolumny ID.

Odpowiedź "PK w linii, w której jest zdefiniowane pole ID." jest błędna, ponieważ "PK" nie jest standardowym słowem kluczowym w składni MySQL dla deklarowania klucza głównego. W czystym SQL/MySQL należy używać formy PRIMARY KEY (albo składni kolumnowej typu ID INT PRIMARY KEY, jeśli tak zbudowano definicję).

Odpowiedź "PK (ID) przed zamknięciem nawiasu." również jest niepoprawna z tego samego powodu: skrót "PK" nie stanowi poprawnej składni constraintu w MySQL. Poprawny zapis wymaga pełnego słowa kluczowego.

Odpowiedź "FOREIGN KEY w linii, w której jest zdefiniowane pole ID." jest błędna, ponieważ FOREIGN KEY służy do definiowania klucza obcego, czyli powiązania z kluczem w innej tabeli. Klucz obcy nie zastępuje klucza głównego i nie spełnia jego funkcji identyfikacyjnej w obrębie tej samej tabeli.

Na egzaminie warto zapamiętać rozróżnienie: PRIMARY KEY identyfikuje rekord w tabeli, a FOREIGN KEY tworzy relację do innej tabeli. Jeśli w odpowiedziach pojawiają się skróty niebędące słowami kluczowymi SQL, zwykle są one pułapką.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klucz główny to ograniczenie (constraint), które jednoznacznie identyfikuje każdy rekord w tabeli. Kolumna (lub zestaw kolumn) będąca kluczem głównym musi mieć wartości unikatowe i nie może być pusta. W praktyce najczęściej używa się kolumny ID.
Najczęściej dodaje się ograniczenie tabeli w postaci PRIMARY KEY (nazwa_kolumny) w definicji tabeli. Alternatywnie można zdefiniować klucz na poziomie kolumny (np. dopisując PRIMARY KEY przy kolumnie), ale w odpowiedziach egzaminacyjnych liczy się poprawne słowo kluczowe.
W czystej składni MySQL/SQL obowiązują konkretne słowa kluczowe. Dla klucza głównego jest to PRIMARY KEY, a nie skrót "PK". Skróty bywają używane potocznie lub w narzędziach, ale nie zastępują składni języka SQL w CREATE TABLE.
Tak, MySQL dopuszcza składnię kolumnową, gdzie przy definicji kolumny dopisuje się PRIMARY KEY. Na egzaminie trzeba jednak rozpoznać, że poprawnym słowem kluczowym jest "PRIMARY KEY", a nie skróty typu "PK".
PRIMARY KEY identyfikuje rekord w obrębie jednej tabeli. FOREIGN KEY tworzy powiązanie (relację) z kluczem w innej tabeli i pilnuje spójności danych między tabelami. To różne ograniczenia i nie można ich stosować zamiennie.
Wartości muszą być unikatowe (żadne dwa rekordy nie mają tego samego klucza) i niepuste. Dodatkowo klucz główny powinien być stabilny (nie zmieniać się w czasie). W praktyce często stosuje się liczbowy identyfikator z autoinkrementacją.
Nie, tabela ma tylko jeden klucz główny. Może on jednak składać się z wielu kolumn (tzw. klucz złożony). To ważne na egzaminie: "więcej niż jeden PRIMARY KEY" jako osobne ograniczenia jest błędem, ale "PRIMARY KEY (a, b)" jest poprawne.
Typowe błędy to użycie nieistniejących skrótów zamiast słów kluczowych, mylenie PRIMARY KEY z FOREIGN KEY, oraz brak jednoznaczności (np. wybór kolumny, która nie gwarantuje unikatowości). Często też pomija się, że klucz główny nie powinien przyjmować wartości NULL.
Klucz złożony bywa sensowny, gdy unikatowość wynika naturalnie z kilku pól (np. identyfikator produktu + identyfikator magazynu). W aplikacjach webowych często i tak dodaje się sztuczne ID dla wygody, a naturalną unikatowość zabezpiecza się dodatkowym ograniczeniem UNIQUE.
Przećwicz tworzenie tabel w MySQL (DDL) oraz dopisywanie ograniczeń: PRIMARY KEY, UNIQUE i FOREIGN KEY. Ucz się rozpoznawania składni po słowach kluczowych i sprawdzaj, co dane ograniczenie gwarantuje (unikatowość, spójność relacji). Pomaga rozwiązywanie krótkich testów z CREATE TABLE.
info

Około 68% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "Poprawna składnia definicji klucza głównego w CREATE TABLE wymaga użycia ograniczenia PRIMARY KEY wskazującego kolumnę ID."

Źródła:

  • MySQL 8.0 Reference Manual: "CREATE TABLE Statement" (sekcja składni i constraints), https://dev.mysql.com/doc/refman/8.0/en/create-table.html (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: "PRIMARY KEY Optimization" / informacje o PRIMARY KEY, https://dev.mysql.com/doc/refman/8.0/en/optimizing-primary-keys.html (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: "FOREIGN KEY Constraints" (InnoDB), https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MySQL: CREATE TABLE (sekcja o PRIMARY KEY)
  • Kurs SQL (DDL: CREATE/ALTER/DROP, constraints)
  • Ćwiczenia praktyczne: tworzenie tabel i dodawanie kluczy w MySQL Workbench lub CLI

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego