MySQL DELETE Query: Jak usunąć wiersz z tabeli

Co to jest zapytanie DELETE?

MySQL Usuń polecenie służy do usuwania wierszy, które nie są już potrzebne z tabel bazy danych. Usuwa cały wiersz z tabeli i zwraca liczbę usuniętych wierszy. Polecenie Usuń przydaje się do usuwania tymczasowych lub nieaktualnych danych z bazy danych.

Zapytanie Usuń w MySQL można usunąć więcej niż jeden wiersz z tabeli w jednym zapytaniu. Okazuje się to zaletą przy usuwaniu dużej liczby wierszy z tabeli bazy danych.

Po usunięciu wiersza w MySQL wiersz został usunięty, nie można go odzyskać. Dlatego też zdecydowanie zaleca się wykonanie kopii zapasowych bazy danych przed usunięciem jakichkolwiek danych z bazy danych. Pozwoli to na przywrócenie bazy danych i wyświetlenie danych później, jeśli będzie to wymagane.

Jak usunąć wiersz w MySQL

Aby usunąć wiersz w MySQL, używana jest instrukcja DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

TUTAJ

  • DELETE FROM `nazwa_tabeli` mówi MySQL serwer, aby usunąć wiersze z tabeli ..
  • [Warunek WHERE] jest opcjonalny i służy do umieszczenia filtra ograniczającego liczbę wierszy, na które wpływa składnia DELETE MySQL zapytanie wierszowe.

Jeśli klauzula GDZIE nie jest używany w MySQL USUŃ zapytanie, wówczas wszystkie wiersze w danej tabeli zostaną usunięte.

Przykład MySQL Usuń zapytanie

Zanim przejdziemy do bardziej szczegółowego omówienia instrukcji SQL 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 z naszej tabeli. Skrypt pokazany poniżej robi to.

SELECT * FROM `movies`;

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

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
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ż wynajmować „Wielkiego dyktatora” swoim członkom i żąda usunięcia go z bazy danych. Jego identyfikator filmu to 18. Możemy użyć poniższego skryptu, aby usunąć wiersz z tabeli MySQL przykład.

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

Wykonanie powyższego skryptu w MySQL Stoł warsztatowy przeciwko 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żna usunąć pojedynczej kolumny tabeli. Możesz usunąć cały wiersz.

Załóżmy, ż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 Usuń w MySQL, służy do usuwania danych, które nie są już potrzebne z tabeli.
  • Klauzula „WHERE” służy do ograniczenia liczby wierszy, na które wpływa zapytanie DELETE MySQL dowództwo.
  • Po usunięciu danych nie można ich odzyskać, dlatego też zdecydowanie zaleca się wykonanie kopii zapasowej przed usunięciem danych.