MySQL DELETE-Abfrage: So löschen Sie Zeilen aus einer Tabelle

Inhaltsverzeichnis:

Anonim

Was ist die DELETE-Abfrage?

Mit dem Befehl MySQL DELETE werden nicht mehr benötigte Zeilen aus den Datenbanktabellen gelöscht. Es löscht die gesamte Zeile aus der Tabelle und gibt die Anzahl der gelöschten Zeilen zurück. Der Befehl Löschen ist praktisch, um temporäre oder veraltete Daten aus Ihrer Datenbank zu löschen.

Die Abfrage "Löschen" in MySQL kann mehr als eine Zeile aus einer Tabelle in einer einzelnen Abfrage löschen. Dies erweist sich als vorteilhaft, wenn eine große Anzahl von Zeilen aus einer Datenbanktabelle entfernt wird.

Sobald eine Löschzeile in der MySQL-Zeile gelöscht wurde, kann sie nicht wiederhergestellt werden. Es wird daher dringend empfohlen, vor dem Löschen von Daten aus der Datenbank Datenbanksicherungen durchzuführen. Auf diese Weise können Sie die Datenbank wiederherstellen und die Daten später anzeigen, falls dies erforderlich sein sollte.

So löschen Sie eine Zeile in MySQL

Um eine Zeile in MySQL zu löschen, wird die Anweisung DELETE FROM verwendet:

DELETE FROM `table_name` [WHERE condition];

HIER

  • DELETE FROM `table_name` weist den MySQL-Server an, Zeilen aus der Tabelle zu entfernen.
  • [WHERE-Bedingung] ist optional und wird verwendet, um einen Filter einzufügen, der die Anzahl der von der MySQL DELETE-Zeilenabfrage betroffenen Zeilen einschränkt.

Wenn die WHERE-Klausel in der MySQL DELETE-Abfrage nicht verwendet wird, werden alle Zeilen in einer bestimmten Tabelle gelöscht.

Beispiel für eine MySQL-Löschabfrage

Bevor wir näher auf den Befehl DELETE eingehen, fügen wir einige Beispieldaten in die Filmtabelle ein, mit denen gearbeitet werden soll.

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);

Durch Ausführen des obigen Skripts werden drei (3) Filme zur Filmtabelle hinzugefügt. Bevor wir weiter in unsere Lektion gehen, lassen Sie uns alle Filme in unsere Tabelle aufnehmen. Das unten gezeigte Skript macht das.

SELECT * FROM `movies`;

Wenn Sie das obige Skript ausführen, erhalten Sie die folgenden Ergebnisse.

 
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

Nehmen wir an, die Myflix-Videobibliothek möchte "The Great Dictator" nicht mehr an ihre Mitglieder vermieten und möchte, dass es aus der Datenbank entfernt wird. Die Film-ID ist 18, wir können das unten gezeigte Skript verwenden, um die Zeile aus der Filmtabelle zu löschen.

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

Durch Ausführen des obigen Skripts in MySQL WorkBench gegen Myflix wird der Film mit der ID 18 aus der Datenbanktabelle gelöscht.

Sehen wir uns den aktuellen Status der Filmtabelle an.

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

HINWEIS:

  • Der Film mit der ID 18 wurde in der Abfrageergebnismenge nicht zurückgegeben.
  • Sie können keine einzelne Spalte für eine Tabelle löschen. Sie können eine ganze Zeile löschen.

Angenommen, wir haben eine Liste der Filme, die wir löschen möchten. Wir können die WHERE-Klausel zusammen mit IN verwenden.

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

Durch Ausführen des obigen Skripts werden Filme mit den IDs 20 und 21 aus unserer Filmtabelle gelöscht.

Zusammenfassung

  • Mit dem Befehl delete werden nicht mehr benötigte Daten aus einer Tabelle entfernt.
  • Die "WHERE-Klausel" wird verwendet, um die Anzahl der von der DELETE-Abfrage betroffenen Zeilen zu begrenzen.
  • Sobald Daten gelöscht wurden, können sie nicht wiederhergestellt werden. Es wird daher dringend empfohlen, vor dem Löschen von Daten Sicherungen durchzuführen.