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 DELETE w SQL DML w SQL DROP TABLE w SQL TRUNCATE w SQL

W bazie danych istnieje tabela klienci wypełniona danymi. Wykonanie polecenia DELETE FROM klienci; spowoduje

A. usunięcie wszystkich rekordów z tabeli klienci, przy czym sama tabela i jej struktura pozostaną.
Dobrze. Bez WHERE usunięte zostaną wszystkie wiersze, ale tabela zostanie.
B. błąd składni, ponieważ brakuje klauzuli WHERE.
Źle. WHERE jest opcjonalne, polecenie wykona się bez błędu.
C. usunięcie całej bazy danych.
Źle. Bazę usuwa DROP DATABASE, a DELETE dotyczy wierszy jednej tabeli.
D. usunięcie tabeli klienci razem z jej strukturą.
Źle. Tabelę wraz ze strukturą usuwa DROP TABLE.
Polecenie DELETE usuwa rekordy, a klauzula WHERE wskazuje, które. Gdy WHERE nie ma, warunek obejmuje wszystkie wiersze, więc DELETE FROM klienci; opróżni tabelę. Sama tabela zostaje: kolumny, typy, klucze i indeksy pozostaną, a do pustej tabeli można od razu dodawać nowe dane. Do zapamiętania: DELETE usuwa wiersze, DROP TABLE usuwa tabelę, DROP DATABASE usuwa całą bazę. Podobny efekt daje TRUNCATE TABLE klienci;, które działa szybciej i zeruje licznik AUTO_INCREMENT. Przed usuwaniem warto sprawdzić zakres poleceniem SELECT z tym samym warunkiem. Po pomyłce dane da się odzyskać tylko z kopii zapasowej.
Wybór innego wariantu wynika zwykle z pomylenia poziomów, na których działają polecenia SQL. Usunięcie tabeli razem ze strukturą to DROP TABLE klienci;, a usunięcie całej bazy - DROP DATABASE nazwa;. DELETE działa niżej, na poziomie wierszy, i nie rusza definicji tabeli. Brak WHERE nie jest błędem składni: klauzula jest opcjonalna, a polecenie wykona się bez ostrzeżenia, co czyni je groźnym. Dlatego niektóre narzędzia, na przykład MySQL Workbench w trybie bezpiecznych aktualizacji, blokują DELETE i UPDATE bez warunku. Wynikiem tego polecenia jest pusta tabela klienci o niezmienionej strukturze. Wynika stąd prosta zasada: każde DELETE i UPDATE sprawdzaj pod kątem warunku, zanim naciśniesz Enter. Usuniętych rekordów nie da się przywrócić, jeśli nie ma kopii zapasowej albo transakcji, którą można wycofać poleceniem ROLLBACK. Konsola MySQL nie ma przycisku Cofnij, więc błędu nie da się wycofać jednym kliknięciem.

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.