Zapytanie MySQL DELETE: Jak usunąć wiersz z tabeli

Spisie treści:

Anonim

Co to jest zapytanie DELETE?

Polecenie MySQL DELETE służy do usuwania niepotrzebnych już wierszy z tabel bazy danych. Usuwa cały wiersz z tabeli i zwraca liczbę usuniętych wierszy. Polecenie Usuń jest przydatne do usuwania tymczasowych lub nieaktualnych danych z bazy danych.

Zapytanie usuwające w MySQL może usunąć więcej niż jeden wiersz z tabeli w jednym zapytaniu. Okazuje się to zaletą podczas usuwania dużej liczby wierszy z tabeli bazy danych.

Po usunięciu wiersza Usuń w wierszu MySQL nie można go odzyskać. Dlatego zdecydowanie zaleca się wykonanie kopii zapasowych bazy danych przed usunięciem jakichkolwiek danych z bazy danych. Może to umożliwić przywrócenie bazy danych i późniejsze przeglądanie danych, jeśli będzie to wymagane.

Jak usunąć wiersz w MySQL

Do usunięcia wiersza w MySQL służy instrukcja DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

TUTAJ

  • DELETE FROM `nazwa_tabeli` mówi serwerowi MySQL, aby usunąć wiersze z tabeli…
  • [WHERE warunek] jest opcjonalny i służy do umieszczania filtru ograniczającego liczbę wierszy, na które ma wpływ zapytanie dotyczące wiersza MySQL DELETE.

Jeśli klauzula WHERE nie zostanie użyta w zapytaniu MySQL DELETE, to wszystkie wiersze w danej tabeli zostaną usunięte.

Przykład zapytania o usunięcie MySQL

Zanim przejdziemy do bardziej szczegółowego omówienia polecenia DELETE, wstawmy kilka przykładowych danych do tabeli filmów, z którymi będziemy pracować.

INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

Wykonanie powyższego skryptu dodaje trzy (3) filmy do tabeli filmów. Zanim przejdziemy dalej do naszej lekcji, zbierzmy wszystkie filmy w naszej tabeli. Robi to pokazany poniżej skrypt.

SELECT * FROM `movies`;

Wykonanie powyższego skryptu daje nam następujące wyniki.

 
movie_id itle director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Załóżmy, że biblioteka wideo Myflix nie chce już wypożyczać „Wielkiego Dyktatora” swoim członkom i chce, aby została usunięta z bazy danych. Jego identyfikator filmu to 18, możemy użyć poniższego skryptu, aby usunąć jego wiersz z tabeli filmów.

DELETE FROM `movies` WHERE `movie_id` = 18;

Wykonanie powyższego skryptu w MySQL WorkBench na Myflix usuwa film o identyfikatorze 18 z tabeli bazy danych.

Zobaczmy aktualny stan tabeli filmów.

SELECT * FROM `movies`;
 
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

UWAGA:

  • film o identyfikatorze 18 nie został zwrócony w zestawie wyników zapytania.
  • nie możesz usunąć pojedynczej kolumny z tabeli. Możesz usunąć cały wiersz.

Powiedzmy, że mamy listę filmów, które chcemy usunąć. Możemy użyć klauzuli WHERE razem z IN.

DELETE FROM `movies` WHERE `movie_id` IN (20,21);

Wykonanie powyższego skryptu usuwa filmy o identyfikatorach 20 i 21 z naszej tabeli filmów.

Podsumowanie

  • Polecenie delete służy do usuwania danych, które nie są już potrzebne z tabeli.
  • Klauzula „WHERE” służy do ograniczania liczby wierszy, na które ma wpływ zapytanie DELETE.
  • Po usunięciu danych nie można ich odzyskać, dlatego zdecydowanie zaleca się wykonanie kopii zapasowych przed usunięciem danych.