Pytanie dotyczy polecenia SQL, które usuwa wszystkie rekordy z tabeli, ale nie usuwa samej tabeli (czyli jej definicji: kolumn, typów danych, ograniczeń itp.). W praktyce najczęściej używa się do tego polecenia TRUNCATE (często spotkasz też pełną składnię w postaci TRUNCATE TABLE).
Dlaczego "TRUNCATE" pasuje do treści pytania? Ponieważ jego celem jest opróżnienie tabeli z danych w całości. Tabela nadal istnieje, więc aplikacja internetowa może dalej wykonywać zapytania do tej tabeli, a programista nie musi odtwarzać struktury.
- "DROP" jest błędne, bo dotyczy usuwania obiektów bazy (np. tabeli). Po wykonaniu DROP tabela przestaje istnieć, więc zapytania typu SELECT/INSERT do niej zakończą się błędem.
- "DELETE" bywa mylące: potrafi usunąć wszystkie rekordy, jeśli nie podasz warunku, ale jest to inny typ operacji i w wielu systemach ma inne właściwości oraz typowy sposób użycia (częściej usuwa się nim wybrane wiersze przez WHERE). W pytaniu chodzi o polecenie kojarzone z opróżnieniem tabeli jako całości.
- "REMOVE" jest błędne, ponieważ nie jest standardowym poleceniem SQL w typowych systemach baz danych.
Wskazówka egzaminacyjna: gdy w treści widzisz "usuń wszystkie rekordy, ale nie usuwaj tabeli", najpierw porównaj trzy pojęcia: DELETE (wiersze), TRUNCATE (opróżnienie tabeli), DROP (usunięcie obiektu). To rozróżnienie jest często sprawdzane w zadaniach dla administrowania bazami danych w aplikacjach webowych.