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: DDL w SQL DROP TABLE w SQL TRUNCATE TABLE w SQL

Wskaż różnicę pomiędzy poleceniami DROP DATABASE i DROP TABLE.

A. DROP DATABASE usuwa całą bazę danych ze wszystkimi tabelami, a DROP TABLE usuwa jedną tabelę wraz z jej danymi.
Dobrze. DROP DATABASE kasuje całą bazę z tabelami, a DROP TABLE jedną tabelę.
B. Obydwa polecenia usuwają jedną wskazaną tabelę, ale tylko DROP DATABASE może być cofnięte.
Źle. DROP DATABASE usuwa całą bazę, a polecenia DROP nie da się cofnąć ROLLBACK.
C. Obydwa polecenia usuwają jedynie zawartość tabel, pozostawiając ich strukturę.
Źle. Samą zawartość usuwają TRUNCATE TABLE i DELETE FROM.
D. DROP DATABASE usuwa jedynie dane z tabel bazy, a DROP TABLE usuwa strukturę jednej tabeli.
Źle. DROP zawsze usuwa obiekt w całości, ze strukturą i danymi.

Oba polecenia usuwają obiekty w całości, różnią się zasięgiem. DROP DATABASE sklep; usuwa całą bazę danych sklep razem ze wszystkimi jej tabelami, widokami i danymi. DROP TABLE klienci; usuwa tylko jedną tabelę - jej strukturę i wszystkie wiersze - a pozostałe tabele bazy zostają nietknięte.

Żadnego z tych poleceń nie cofa się w MySQL poleceniem ROLLBACK, dlatego przed ich użyciem robi się kopię zapasową, na przykład programem mysqldump. Bezpieczniejsze warianty DROP DATABASE IF EXISTS i DROP TABLE IF EXISTS nie zgłaszają błędu, gdy obiekt nie istnieje, co przydaje się w skryptach tworzących bazę od nowa.

Wspólne słowo DROP oznacza zawsze usunięcie obiektu razem ze strukturą, a nie samo opróżnienie. Opis, w którym DROP DATABASE kasuje tylko dane, a DROP TABLE strukturę, rozdziela to, co w rzeczywistości dzieje się razem: obie rzeczy znikają za każdym razem.

Usunięcie samej zawartości przy zachowaniu struktury to działanie TRUNCATE TABLE albo DELETE FROM. Po DROP obiekt przestaje istnieć i odwołanie do niego kończy się błędem.

Twierdzenie, że oba polecenia usuwają jedną tabelę, pomija różnicę w zasięgu: DROP DATABASE obejmuje wszystkie tabele bazy. Odpada też możliwość cofnięcia - polecenia DDL w MySQL same zatwierdzają transakcję. Prawidłowo: DROP DATABASE usuwa całą bazę, a DROP TABLE jedną tabelę wraz z danymi.

Przed wykonaniem któregokolwiek z tych poleceń warto zrobić kopię zapasową bazy, na przykład eksportem w phpMyAdmin.

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.