KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 32.
Rozważ poniższy fragment kodu SQL:
DROP TABLE IF EXISTS Students;
Co dokładnie robi ten fragment kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
DROP TABLE usuwa tabelę z bazy danych. Dodatek IF EXISTS sprawia, że polecenie wykona się tylko wtedy, gdy tabela "Students" faktycznie istnieje, dzięki czemu skrypt nie zakończy się błędem w przypadku braku tej tabeli.
To typowe polecenie DDL do usuwania obiektów.

Pełne wyjaśnienie:

Polecenie DROP TABLE należy do DDL (Data Definition Language) i służy do usuwania tabeli z bazy danych, czyli likwiduje sam obiekt tabeli (a wraz z nim dane w tej tabeli).

Fragment IF EXISTS jest warunkiem bezpieczeństwa: oznacza, że usunięcie zostanie wykonane tylko wtedy, gdy tabela o podanej nazwie rzeczywiście istnieje. W praktyce zapobiega to przerwaniu działania skryptu błędem w sytuacji, gdy tabela została już wcześniej usunięta albo nigdy nie została utworzona.

Dlatego poprawna interpretacja brzmi: "Usuwa tabelę 'Students', jeśli istnieje."

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • "Usuwa tabelę 'Students', jeśli nie istnieje." – to logicznie sprzeczne: nie da się usunąć obiektu, którego nie ma. Klauzula IF EXISTS nie odwraca sensu polecenia, tylko blokuje wykonanie usunięcia, gdy tabela nie istnieje.
  • "Tworzy tabelę 'Students', jeśli nie istnieje." – tworzenie realizuje się poleceniem CREATE TABLE (często z IF NOT EXISTS), a nie DROP TABLE.
  • "Tworzy tabelę 'Students', jeśli istnieje." – również błędne, bo DROP TABLE nigdy nie tworzy tabeli; służy wyłącznie do usuwania.

Wskazówka egzaminacyjna: zapamiętaj parę pojęć DROP = usuń, CREATE = utwórz. Warunki IF EXISTS i IF NOT EXISTS zwykle jedynie chronią skrypt przed błędem, a nie zmieniają znaczenia głównej operacji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
DROP TABLE usuwa tabelę z bazy danych, czyli kasuje jej definicję (strukturę) i w praktyce powoduje utratę danych znajdujących się w tej tabeli. To polecenie DDL, używane do usuwania obiektów, a nie do modyfikacji pojedynczych rekordów.
IF EXISTS chroni skrypt przed błędem, gdy tabela nie istnieje. Dzięki temu skrypt (np. migracja lub reset bazy) może być uruchamiany wielokrotnie, a operacja usuwania po prostu zostanie pominięta, jeśli nie ma czego usuwać.
Tak. Jeśli tabela istnieje, to DROP TABLE usuwa ją jako obiekt bazy danych, a wraz z nią znikają dane, indeksy i inne elementy powiązane z tą tabelą. IF EXISTS nie zmienia skutku usunięcia, tylko wpływa na zachowanie przy braku tabeli.
DELETE usuwa wiersze (rekordy) z istniejącej tabeli i zwykle można ograniczać go warunkiem WHERE. DROP TABLE usuwa całą tabelę (strukturę). Po DROP nie da się wykonywać zapytań do tej tabeli, bo przestaje istnieć.
Najczęściej w skryptach automatyzujących pracę z bazą: podczas przygotowania środowiska testowego, w instalatorach/deinstalatorach aplikacji webowych oraz w migracjach, gdy najpierw trzeba usunąć starą strukturę. Warunek IF EXISTS ułatwia wielokrotne uruchamianie skryptu.
W wielu popularnych DBMS taka składnia jest dostępna, ale szczegóły mogą się różnić. Na egzaminie i w pracy należy sprawdzać dokumentację konkretnego silnika (np. MySQL, PostgreSQL, SQLite). Zasada działania jest jednak zwykle taka sama: usunięcie, jeśli obiekt istnieje.
Typowy błąd to mylenie IF EXISTS z IF NOT EXISTS i przez to błędna interpretacja działania skryptu. Drugi częsty problem to pomijanie warunku w czytaniu kodu i odpowiadanie wyłącznie na podstawie słowa DROP/CREATE.
Zazwyczaj nie w prosty sposób. Po DROP TABLE tabela znika i odtworzenie wymaga kopii zapasowej, mechanizmów odzyskiwania lub ponownego utworzenia struktury. Dlatego przed użyciem DROP w produkcji stosuje się backupy i pracę na kontrolowanych migracjach.
EXISTS w różnych kontekstach oznacza "istnieje". W DROP TABLE IF EXISTS chodzi o istnienie obiektu (tabeli). W zapytaniach SELECT słowo EXISTS może występować jako operator logiczny sprawdzający istnienie wierszy w podzapytaniu, więc ważny jest kontekst.
Opanuj podstawowe polecenia DDL: CREATE, ALTER, DROP oraz najczęstsze dodatki typu IF EXISTS/IF NOT EXISTS. Ćwicz rozpoznawanie skutku poleceń na krótkich fragmentach kodu i odróżniaj DDL od DML (SELECT/INSERT/UPDATE/DELETE).
info

Statystycznie 70% uczniów zna prawidłową odpowiedź. średnio łatwe

Eksperci podkreślają: "DROP TABLE usuwa tabelę z bazy danych."

Źródła:

  • MySQL 8.0 Reference Manual: "DROP TABLE Statement" (opis składni z IF EXISTS) - https://dev.mysql.com/doc/refman/8.0/en/drop-table.html - accessed 2026-02-18
  • PostgreSQL Documentation: "DROP TABLE" (składnia z IF EXISTS i znaczenie) - https://www.postgresql.org/docs/current/sql-droptable.html - accessed 2026-02-18
  • SQLite Documentation: "DROP TABLE" (zachowanie polecenia i warunek IF EXISTS) - https://www.sqlite.org/lang_droptable.html - accessed 2026-02-18

Materiały:

  • Dokumentacja składni SQL dla używanego DBMS (np. MySQL, PostgreSQL)
  • Kurs wprowadzający do SQL (DDL vs DML) z ćwiczeniami
  • Materiały o migracjach baz danych w aplikacjach webowych (pojęcia: migration, rollback)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego