KWALIFIKACJA INF3 - CZERWIEC 2021 (test 2)

PYTANIE NR 20.
W języku SQL ustawienie klucza podstawowego na polu id w tabeli uczniowie możliwe jest za pomocą polecenia
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne jest polecenie ALTER TABLE uczniowie ADD PRIMARY KEY (id);, ponieważ ALTER TABLE służy do zmiany struktury istniejącej tabeli, a klauzula ADD PRIMARY KEY dodaje ograniczenie klucza podstawowego dla wskazanej kolumny. Polecenia z INSERT dotyczą wstawiania danych, nie definicji tabel.

Pełne wyjaśnienie:

Klucz podstawowy (PRIMARY KEY) to ograniczenie, które identyfikuje jednoznacznie każdy wiersz tabeli. W praktyce wymusza unikalność wartości w danej kolumnie (lub zestawie kolumn) oraz brak wartości NULL, a w wielu systemach jest też automatycznie wspierany indeksem.

Jeżeli tabela już istnieje, to zmiany jej definicji wykonuje się poleceniami z grupy DDL, a podstawowym narzędziem jest ALTER TABLE. Dlatego polecenie ALTER TABLE uczniowie ADD PRIMARY KEY (id); jest właściwe: modyfikuje schemat tabeli uczniowie i dodaje do niego ograniczenie klucza podstawowego dla kolumny id.

Pozostałe propozycje są błędne, bo używają niepoprawnych konstrukcji:

  • INSERT TABLE ... – w SQL używa się INSERT INTO do dodawania wierszy (danych) do tabeli, a nie do zmiany jej struktury. To typowe pomylenie DML z DDL.
  • ADD TABLE ... – samo ADD nie jest samodzielnym poleceniem SQL. Występuje jako część składni ALTER TABLE ... ADD ....
  • INSERT TABLE ... ADD PRIMARY KEY ... – łączy dwie różne kategorie działań w niepoprawny sposób; dodanie klucza podstawowego wykonuje się przez ALTER TABLE (lub podczas CREATE TABLE), nie przez INSERT.

Warto pamiętać o warunkach praktycznych: dodanie PRIMARY KEY nie powiedzie się, jeśli w kolumnie id są duplikaty lub wartości NULL, oraz tabela może mieć tylko jeden klucz podstawowy.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Używa się polecenia DDL ALTER TABLE z klauzulą ADD PRIMARY KEY, np. ALTER TABLE uczniowie ADD PRIMARY KEY (id);. To modyfikuje schemat tabeli, a nie jej dane. W wielu DBMS można też nadać nazwę ograniczeniu przez ADD CONSTRAINT.
PRIMARY KEY to ograniczenie jednoznacznie identyfikujące każdy rekord. Wymusza unikalność wartości w kolumnie (lub zestawie kolumn) i zazwyczaj nie dopuszcza wartości NULL. Dzięki temu inne tabele mogą poprawnie odwoływać się do rekordów przez klucze obce.
INSERT (zwykle INSERT INTO) służy do dodawania wierszy, czyli danych. Klucz podstawowy dotyczy struktury tabeli (schematu), więc ustawia się go poleceniami DDL, np. CREATE TABLE lub ALTER TABLE. To częsty błąd mylenia DML z DDL.
Najczęściej CREATE TABLE używa się, gdy projektujesz tabelę od zera i od razu znasz klucz. ALTER TABLE jest typowe, gdy tabela już istnieje (np. po imporcie danych) i dopiero później porządkujesz ograniczenia. W praktyce ALTER wymaga też, by dane spełniały warunki klucza.
W typowych relacyjnych bazach danych tabela może mieć tylko jeden klucz podstawowy. Może on być jednak złożony (wielokolumnowy), np. PRIMARY KEY (kol1, kol2). Dodatkowe unikalności realizuje się przez ograniczenia UNIQUE, a nie przez drugi PRIMARY KEY.
Operacja dodania klucza podstawowego zwykle zakończy się błędem, ponieważ PRIMARY KEY wymaga unikalnych wartości. Najpierw trzeba wykryć i usunąć duplikaty albo poprawić dane. Podobnie problematyczne są wartości NULL w kolumnie, bo klucz podstawowy z reguły ich nie dopuszcza.
W wielu systemach stosuje się składnię z nazwą ograniczenia, np. ALTER TABLE uczniowie ADD CONSTRAINT pk_uczniowie PRIMARY KEY (id);. Ułatwia to późniejsze zarządzanie schematem (np. usuwanie lub modyfikacje ograniczeń) i czytelność projektu. Składnia może się różnić zależnie od DBMS.
Najczęstsze pomyłki to: użycie INSERT zamiast ALTER (mylenie danych ze schematem), próba użycia samego ADD bez ALTER TABLE oraz brak nawiasów przy liście kolumn. Zdarza się też ignorowanie stanu danych: duplikaty lub NULL-e uniemożliwiają dodanie klucza.
To bardzo popularna i szeroko wspierana składnia dla wielu DBMS, ale szczegóły mogą się różnić (np. nazwy ograniczeń, sposoby usuwania, wymagania dotyczące indeksów). Na egzaminie zwykle sprawdza się rozumienie idei DDL i podstawowej składni, a nie niuanse jednego producenta.
DDL zmienia strukturę obiektów: CREATE, ALTER, DROP. DML operuje na danych: SELECT, INSERT, UPDATE, DELETE. Jeśli pytanie dotyczy kluczy, ograniczeń i definicji tabeli, prawie zawsze chodzi o DDL.
info

To pytanie poprawnie rozwiązuje 63% zdających egzamin. średnie

Eksperci podkreślają: "Polecenia z INSERT dotyczą wstawiania danych, nie definicji tabel."

Źródła:

  • PostgreSQL Documentation: ALTER TABLE — https://www.postgresql.org/docs/current/sql-altertable.html (dostęp: 2026-02-27)
  • MySQL 8.0 Reference Manual: ALTER TABLE Statement — https://dev.mysql.com/doc/refman/8.0/en/alter-table.html (dostęp: 2026-02-27)
  • Microsoft Learn: ALTER TABLE (Transact-SQL) — https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja wybranego systemu DBMS: sekcja ALTER TABLE / constraints
  • Ćwiczenia praktyczne SQL DDL (tworzenie tabel, dodawanie ograniczeń, indeksów)
  • Materiały kursowe o integralności referencyjnej i normalizacji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego