KWALIFIKACJA INF3 - TEST WIEDZY NR 1

PYTANIE NR 27.
Jakiego typu zapytanie SQL powinieneś użyć, aby usunąć rekord o ID 5 z tabeli "Użytkownicy"?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Do usunięcia wiersza z tabeli służy polecenie DELETE. Klauzula WHERE ID = 5 zawęża operację do rekordu o wskazanym identyfikatorze, dzięki czemu nie zostaną skasowane inne wiersze. Pozostałe zapytania dotyczą odczytu danych (SELECT) albo modyfikacji/wstawiania (UPDATE/INSERT), a nie kasowania.

Pełne wyjaśnienie:

Polecenia SQL używane w typowych operacjach CRUD dzielą się na różne typy działań. Jeśli celem jest usunięcie istniejącego rekordu (wiersza) z tabeli, właściwą instrukcją jest DELETE. W praktyce prawie zawsze łączy się ją z klauzulą WHERE, aby jednoznacznie wskazać, które wiersze mają zostać skasowane.

Odpowiedź "DELETE FROM Użytkownicy WHERE ID = 5" jest poprawna, ponieważ:

  • DELETE FROM Użytkownicy wskazuje tabelę, z której mają zostać usunięte dane,
  • WHERE ID = 5 ogranicza zakres do wiersza o ID równym 5 (zwykle jest to klucz główny lub unikatowy identyfikator).

Dlaczego pozostałe propozycje nie spełniają celu?

  • "SELECT * FROM Użytkownicy WHERE ID = 5" jedynie odczytuje dane (wyszukuje rekord), niczego nie usuwa.
  • "UPDATE Użytkownicy SET ID = NULL WHERE ID = 5" próbuje zmienić wartość ID na NULL. To nie jest usunięcie rekordu, a dodatkowo często jest niemożliwe, bo kolumna ID bywa kluczem głównym i nie może przyjmować NULL.
  • "INSERT INTO Użytkownicy (ID) VALUES (NULL) WHERE ID = 5" ma błędną logikę: INSERT służy do wstawiania nowych wierszy, a standardowo nie łączy się go w ten sposób z WHERE do wskazywania istniejących rekordów. Nawet gdyby składnia była poprawna w jakimś dialekcie, nie realizowałaby kasowania.

Wskazówka egzaminacyjna: zawsze zwracaj uwagę na czasownik operacji. DELETE usuwa, SELECT pobiera, UPDATE aktualizuje, INSERT dodaje. Dodatkowo upewnij się, że w zapytaniu kasującym jest precyzyjny WHERE – brak warunku może skutkować usunięciem wszystkich wierszy w tabeli.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
DELETE usuwa wiersze z tabeli w bazie danych. Najczęściej stosuje się je z WHERE, aby wskazać konkretne rekordy do skasowania. Bez WHERE można niechcący usunąć wszystkie wiersze w tabeli.
Użyj DELETE FROM nazwa_tabeli WHERE ID = .... Warunek WHERE zawęża operację do rekordu o danym identyfikatorze. W praktyce ID bywa kluczem głównym, więc wskazuje najwyżej jeden wiersz.
Bez klauzuli WHERE instrukcja DELETE usuwa wszystkie wiersze z tabeli. To częsty błąd na ćwiczeniach i w pracy administratora. Zawsze sprawdzaj warunek i rozważ wykonanie SELECT z tym samym WHERE przed usunięciem.
Nie. SELECT służy do odczytu danych (pobierania wyników zapytania) i sam w sobie nie modyfikuje tabeli. Usuwanie realizuje się przez DELETE (lub czasem TRUNCATE dla całej tabeli, zależnie od systemu).
Nie. UPDATE zmienia wartości w istniejącym wierszu, a nie usuwa wiersz. Ustawienie NULL może tylko "wyczyścić" pole (jeśli kolumna dopuszcza NULL), ale rekord nadal istnieje i nadal może zajmować miejsce oraz wpływać na relacje.
INSERT dodaje nowe wiersze do tabeli, a DELETE usuwa istniejące. Na egzaminie patrz na cel: "dodać rekord" vs "usunąć rekord". Dodatkowo DELETE zwykle ma WHERE, a INSERT wskazuje listę kolumn i wartości.
Gdy warunek WHERE pasuje do wielu wierszy (np. WHERE status='nieaktywny'). Jeśli chcesz usunąć dokładnie jeden rekord, warunek powinien wskazywać unikatową wartość (np. klucz główny ID) lub być tak skonstruowany, by zwracał tylko jeden wiersz.
Najprościej uruchomić SELECT z identycznym warunkiem WHERE, np. SELECT * FROM tabela WHERE .... Zobaczysz, które wiersze spełniają warunek. To dobra praktyka, zwłaszcza w administracji bazą i podczas pracy na danych produkcyjnych.
Zależy od systemu i użycia transakcji. Jeśli DELETE wykonasz w transakcji, często można zrobić ROLLBACK przed zatwierdzeniem (COMMIT). Po zatwierdzeniu cofnięcie zwykle wymaga kopii zapasowej, logów lub mechanizmów odzyskiwania.
Najczęściej: pomylenie DELETE z SELECT/UPDATE, brak klauzuli WHERE, błędna nazwa tabeli/kolumny oraz mylenie warunku (np. ID=5 vs '5'). Warto ćwiczyć składnię i rozumieć, co robi każda część zapytania.
info

To pytanie poprawnie rozwiązuje 83% zdających egzamin. średnio łatwe

W praktyce zawodowej kluczowe jest to, że do usunięcia wiersza z tabeli służy polecenie DELETE.

Źródła:

  • PostgreSQL Documentation: DELETE — https://www.postgresql.org/docs/current/sql-delete.html - accessed 2026-02-28
  • MySQL 8.0 Reference Manual: DELETE Statement — https://dev.mysql.com/doc/refman/8.0/en/delete.html - accessed 2026-02-28
  • SQLite Documentation: DELETE — https://www.sqlite.org/lang_delete.html - accessed 2026-02-28

Materiały:

  • Dokumentacja używanego systemu DB (np. MySQL/PostgreSQL/SQLite) – sekcja dotycząca DELETE
  • Materiały do INF.3 z podstaw SQL i operacji CRUD
  • Ćwiczenia praktyczne: wykonywanie DELETE w transakcji oraz z warunkami WHERE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego