Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Słowa kluczowe: ALTER TABLE w SQL DDL w SQL DML w SQL DROP TABLE w SQL Instrukcja DELETE FROM w SQL TRUNCATE TABLE w SQL

W bazie danych zdefiniowano tabelę Mieszkancy wypełnioną danymi. Aby usunąć tę tabelę wraz z zawartością, należy posłużyć się poleceniem

A.
DROP TABLE Mieszkancy;
B.
TRUNCATE TABLE Mieszkancy;
C.
DELETE FROM Mieszkancy;
D.
ALTER TABLE Mieszkancy;

Pytanie z egzaminu CKE, czerwiec 2019 (arkusz EE.09-X-19.06).

Polecenie DROP TABLE Mieszkancy; jest właściwe, ponieważ usuwa z bazy danych cały obiekt tabeli, czyli zarówno jej strukturę, jak i wszystkie zapisane w niej dane. W SQL jest to polecenie z grupy DDL, czyli Data Definition Language, służącej do definiowania i usuwania elementów schematu bazy. Po wykonaniu DROP TABLE tabela Mieszkancy przestaje istnieć: nie ma już kolumn, indeksów, ograniczeń, danych ani metadanych związanych z tą tabelą. W praktyce używa się tego np. przy usuwaniu tabel tymczasowych, porządkowaniu starego schematu albo podczas przebudowy bazy w środowisku testowym. Moim zdaniem warto tu zapamiętać prostą zasadę: jeśli chcesz usunąć tabelę jako obiekt, używasz DROP TABLE, a jeśli tylko rekordy, to raczej DELETE albo TRUNCATE. Dobra praktyka branżowa jest taka, żeby przed wykonaniem DROP TABLE sprawdzić zależności, np. klucze obce, widoki, procedury i zrobić kopię zapasową. To polecenie jest mocne i czasem nie ma prostego cofnięcia, zależnie od systemu bazodanowego i ustawień transakcji.
W tym pytaniu łatwo pomylić usunięcie danych z usunięciem całej tabeli, a to są dwie różne operacje w SQL. DELETE FROM Mieszkancy; usuwa rekordy z tabeli, ale sama tabela dalej istnieje. Zostaje jej struktura, czyli kolumny, typy danych, indeksy, ograniczenia i można potem znowu wstawiać do niej nowe wiersze. DELETE należy do operacji DML, bo pracuje na danych, nie na definicji obiektu bazy. Często jest używane wtedy, gdy chcemy skasować część lub wszystkie wiersze, np. z warunkiem WHERE, ale nie likwidować tabeli jako takiej. ALTER TABLE Mieszkancy; też nie pasuje, bo ALTER TABLE służy do modyfikowania struktury tabeli, na przykład dodania kolumny, zmiany typu danych albo dodania ograniczenia. Samo takie polecenie jest zresztą niepełne, bo nie wskazuje, co dokładnie ma zostać zmienione. TRUNCATE TABLE Mieszkancy; bywa szczególnie mylące, bo usuwa wszystkie dane z tabeli szybko i zwykle resetuje licznik automatyczny, np. AUTO_INCREMENT. Jednak nadal pozostawia tabelę w bazie. To dobre do czyszczenia zawartości, ale nie do usunięcia definicji tabeli. Jeśli wymaganie brzmi: usunąć tabelę wraz z zawartością, właściwym wyborem jest DROP TABLE Mieszkancy;. Z mojego doświadczenia najczęstszy błąd polega na tym, że ktoś widzi słowo usuń i od razu wybiera DELETE, bez zastanowienia czy chodzi o rekordy, czy o cały obiekt bazy danych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.