KWALIFIKACJA INF3 - TEST WIEDZY NR 3

PYTANIE NR 31.
Jakie polecenie SQL służy do usunięcia wszystkich rekordów z tabeli, ale nie usuwa samej tabeli?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
TRUNCATE usuwa wszystkie wiersze (rekordy) z tabeli, ale pozostawia samą tabelę i jej definicję w bazie. DELETE też usuwa wiersze, lecz jest poleceniem DML i zwykle działa "wiersz po wierszu". DROP usuwa obiekt tabeli, a REMOVE nie jest standardowym poleceniem SQL.

Pełne wyjaśnienie:

Polecenie TRUNCATE służy do szybkiego usunięcia wszystkich rekordów (wierszy) z tabeli, przy jednoczesnym pozostawieniu samej tabeli w bazie danych. Oznacza to, że po wykonaniu TRUNCATE tabela nadal istnieje: zachowane są jej kolumny, typy danych, ograniczenia (w zależności od silnika) oraz możliwość dalszego wstawiania nowych rekordów.

Odpowiedź DELETE jest niepoprawna w tym pytaniu, ponieważ choć DELETE potrafi usunąć wszystkie rekordy (np. bez klauzuli WHERE), to pytanie typowo sprawdza rozróżnienie: TRUNCATE jest dedykowane do wyczyszczenia całej tabeli, a DELETE to usuwanie rekordów w sposób bardziej "selektywny" i standardowo kojarzony z filtrowaniem. W praktyce DELETE może być wolniejsze i ma inne zachowanie transakcyjne oraz konsekwencje dla logowania/triggerów – zależnie od DBMS.

Odpowiedź DROP jest błędna, bo usuwa tabelę jako obiekt (strukturę), czyli po wykonaniu DROP TABLE nie ma już tabeli, do której aplikacja mogłaby dalej zapisywać dane bez ponownego utworzenia obiektu.

Odpowiedź REMOVE jest błędna, ponieważ nie jest standardowym poleceniem SQL do usuwania danych z tabeli w typowych systemach relacyjnych.

Wskazówka egzaminacyjna: zapamiętaj trzy poziomy "usuwania": usuwanie wierszy (DELETE), wyczyszczenie całej zawartości tabeli (TRUNCATE), usunięcie obiektu (DROP). Jeśli w treści jest "usuń rekordy, ale nie usuwaj tabeli", najczęściej chodzi o TRUNCATE.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
TRUNCATE usuwa wszystkie wiersze z tabeli, pozostawiając jej strukturę (kolumny i definicję) w bazie danych. Po operacji tabela nadal istnieje i można do niej wstawiać nowe dane. Szczegóły działania (np. logowanie, transakcje) zależą od DBMS.
DELETE usuwa wiersze (opcjonalnie z WHERE) i jest typowym poleceniem DML do selektywnego kasowania danych. TRUNCATE służy do wyczyszczenia całej tabeli. Różnice w szybkości, logowaniu i wyzwalaczach mogą zależeć od silnika bazy.
DROP usuwa obiekt bazy danych (np. tabelę), czyli kasuje nie tylko dane, ale i definicję tabeli. Po wykonaniu DROP aplikacja nie może już wykonywać zapytań do tej tabeli bez jej ponownego utworzenia.
Tak, w wielu bazach danych DELETE bez klauzuli WHERE usuwa wszystkie wiersze tabeli. Na egzaminach często odróżnia się to od TRUNCATE, które jest przeznaczone do szybkiego wyczyszczenia całej tabeli, ale oba nie usuwają definicji tabeli.
Najczęściej do szybkiego czyszczenia tabel z danymi testowymi lub tymczasowymi, np. przed ponownym importem danych lub resetem środowiska deweloperskiego. W aplikacjach WWW warto upewnić się co do uprawnień i zależności (np. kluczy obcych) w danym DBMS.
Nie, TRUNCATE usuwa dane (wiersze), ale pozostawia tabelę jako obiekt. Struktura tabeli (kolumny, typy) nadal istnieje. To kluczowe rozróżnienie: DROP usuwa strukturę, a TRUNCATE usuwa zawartość.
W standardowym SQL oraz w popularnych DBMS (np. PostgreSQL, MySQL, SQL Server) nie używa się polecenia REMOVE do kasowania danych z tabeli. Na egzaminie taka odpowiedź jest zwykle dystraktorem sprawdzającym znajomość realnych komend.
DROP TABLE usuwa tabelę, więc może natychmiast przerwać działanie funkcji aplikacji zależnych od tej tabeli (zapytania, logowanie, rejestracja). Odzyskanie wymaga odtworzenia schematu i danych z kopii zapasowej, dlatego to operacja administracyjna o dużym ryzyku.
Ćwicz podstawowe komendy DDL/DML na przykładowej bazie: CREATE, INSERT, SELECT, UPDATE, DELETE, TRUNCATE, DROP. Rób krótkie testy: "czy kasuję wiersze czy obiekt?". Warto też sprawdzać zachowanie w konkretnym DBMS używanym na zajęciach.
Najczęstsze błędy to mylenie TRUNCATE z DROP (skasowanie tabeli zamiast danych) oraz użycie DELETE bez WHERE w tabeli produkcyjnej. Ucz się czytać polecenie: czy ma usuwać dane, czy strukturę, oraz czy ma dotyczyć wszystkich czy tylko wybranych rekordów.
info

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

W praktyce zawodowej kluczowe jest to, że tRUNCATE usuwa wszystkie wiersze (rekordy) z tabeli, ale pozostawia samą tabelę i jej definicję w bazie.

Źródła:

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

Materiały:

  • Dokumentacja poleceń SQL dla używanego silnika (np. PostgreSQL/MySQL/SQL Server)
  • Notatki: różnice TRUNCATE vs DELETE vs DROP (skutki, transakcje, uprawnienia)
  • Zadania praktyczne w DBMS: tworzenie tabeli i testowe czyszczenie danych różnymi poleceniami

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego