KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 25.
Zastosowanie kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status = 1;

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
DELETE FROM mieszkania WHERE status = 1 usuwa z tabeli mieszkania wyłącznie te rekordy (wiersze), dla których warunek w klauzuli WHERE jest spełniony, czyli status ma wartość 1. Nie usuwa kolumny, całej tabeli ani bazy danych.

Pełne wyjaśnienie:

Zapytanie:

DELETE FROM mieszkania WHERE status = 1;

jest instrukcją DML służącą do usuwania rekordów (wierszy) z tabeli. Kluczowe jest tu połączenie dwóch elementów:

  • DELETE FROM mieszkania – wskazuje tabelę, z której mają zostać usunięte dane.
  • WHERE status = 1 – ogranicza operację tylko do tych wierszy, które spełniają warunek (kolumna status ma wartość 1).

Dlatego poprawne znaczenie to: usunięcie rekordów, w których pole status jest równe 1, z tabeli mieszkania.

Dlaczego pozostałe odpowiedzi są błędne?

  • Odpowiedź o usunięciu "pola o nazwie status" jest niepoprawna, bo usuwanie kolumn realizuje się poleceniami zmiany struktury tabeli (operacje DDL), a DELETE usuwa wiersze danych.
  • Odpowiedź o usunięciu całej tabeli z bazy danych jest niepoprawna, ponieważ usunięcie tabeli to inny rodzaj operacji (DDL), a tutaj wskazano tylko usuwanie rekordów z tabeli.
  • Odpowiedź o usunięciu "tabel, w których pole status jest równe 1" jest nielogiczna: warunek status = 1 dotyczy wartości w kolumnie wierszy, a nie cechy "tabel". Dodatkowo nazwa mieszkania w zapytaniu jest nazwą tabeli, nie bazy danych.

W praktyce taki zapis stosuje się np. do masowego usuwania danych oznaczonych określonym statusem. Na egzaminie zwracaj uwagę na obecność klauzuli WHERE, bo bez niej instrukcja usunęłaby wszystkie rekordy z tabeli.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
DELETE usuwa wiersze (rekordy) z tabeli. Może usuwać wszystkie rekordy (gdy brak WHERE) albo tylko te spełniające warunek. Nie zmienia struktury tabeli (kolumn), tylko dane w tabeli.
WHERE działa jak filtr: określa, które rekordy mają zostać usunięte. Usuwane są tylko te wiersze, dla których warunek logiczny jest prawdziwy, np. status = 1.
Kolumna to element struktury tabeli. DELETE usuwa dane (wiersze), a nie strukturę. Usuwanie lub modyfikacja kolumny wymaga poleceń zmiany schematu (np. operacji typu ALTER), zależnie od silnika bazy.
Nie. DELETE usuwa tylko rekordy z tabeli, którą wskazujesz po słowach DELETE FROM. Usunięcie całej tabeli to inna operacja na schemacie bazy (DDL) i nie jest tym, co robi DELETE.
Gdy brakuje WHERE, polecenie usuwa wszystkie rekordy z tabeli. To częsty błąd na egzaminie i w praktyce. Dlatego zawsze sprawdzaj, czy warunek jest poprawny, zanim wykonasz zapytanie.
Najpierw wykonaj zapytanie SELECT z identycznym warunkiem WHERE, np. SELECT * FROM mieszkania WHERE status = 1. Wynik SELECT pokaże wiersze, które byłyby objęte usuwaniem.
Najczęściej myli się usuwanie wierszy z usuwaniem kolumny albo całej tabeli. Druga typowa pomyłka to ignorowanie WHERE i zakładanie, że usuwane jest "wszystko". Warto czytać zapytanie od WHERE do FROM.
Status bywa używany do oznaczania rekordów nieaktywnych, archiwalnych lub przeznaczonych do czyszczenia. W aplikacjach WWW często najpierw zmienia się status (np. na "do usunięcia"), a potem usuwa się rekordy warunkowo.
DELETE usuwa dane z istniejącej tabeli i zwykle występuje z WHERE. Usunięcie tabeli dotyczy obiektu tabeli w bazie i jest inną klasą poleceń (DDL). Na egzaminie patrz, czy mowa o rekordach czy o strukturze.
Zależy od konfiguracji i narzędzi: bez kopii zapasowej lub transakcji (rollback) odzyskanie bywa niemożliwe. W praktyce stosuje się transakcje, backupy i środowiska testowe. Egzaminowo: traktuj DELETE jako operację trwałego usunięcia danych.
info

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

Specjaliści zwracają uwagę: "DELETE FROM mieszkania WHERE status = 1 usuwa z tabeli mieszkania wyłącznie te rekordy (wiersze), dla których warunek w klauzuli WHERE jest spełniony, czyli status ma wartość 1."

Źródła:

  • MySQL 8.0 Reference Manual – SQL Statement Syntax – DELETE Statement, https://dev.mysql.com/doc/refman/8.0/en/delete.html (dostęp: 2026-03-05)
  • PostgreSQL Documentation – SQL Commands – DELETE, https://www.postgresql.org/docs/current/sql-delete.html (dostęp: 2026-03-05)
  • SQLite Documentation – DELETE, https://www.sqlite.org/lang_delete.html (dostęp: 2026-03-05)

Materiały:

  • Dokumentacja SQL dla używanego silnika (MySQL/PostgreSQL/SQLite) – sekcja DELETE
  • Materiały o różnicy DML (DELETE) i DDL (DROP) oraz ich skutkach
  • Ćwiczenia praktyczne z zapytań SQL z warunkami WHERE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego