Wskaż różnicę pomiędzy poleceniami DROP DATABASE i DROP TABLE.
DROP DATABASE kasuje całą bazę z tabelami, a DROP TABLE jedną tabelę.DROP DATABASE usuwa całą bazę, a polecenia DROP nie da się cofnąć ROLLBACK.TRUNCATE TABLE i DELETE FROM.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.