MySQL DELETE Query: Πώς να διαγράψετε τη σειρά από έναν πίνακα

Πίνακας περιεχομένων:

Anonim

Τι είναι το ερώτημα DELETE;

Η εντολή MySQL DELETE χρησιμοποιείται για τη διαγραφή σειρών που δεν απαιτούνται πλέον από τους πίνακες βάσης δεδομένων. Διαγράφει ολόκληρη τη σειρά από τον πίνακα και επιστρέφει τον αριθμό των διαγραμμένων σειρών. Η εντολή Διαγραφή είναι χρήσιμη για τη διαγραφή προσωρινών ή ξεπερασμένων δεδομένων από τη βάση δεδομένων σας.

Το ερώτημα Διαγραφή στο MySQL μπορεί να διαγράψει περισσότερες από μία σειρές από έναν πίνακα σε ένα μόνο ερώτημα. Αυτό αποδεικνύεται ότι είναι πλεονεκτήματα κατά την αφαίρεση μεγάλου αριθμού σειρών από έναν πίνακα βάσης δεδομένων.

Μόλις διαγραφεί μια σειρά Διαγραφή στη γραμμή MySQL, δεν μπορεί να ανακτηθεί. Συνιστάται επομένως να δημιουργείτε αντίγραφα ασφαλείας της βάσης δεδομένων πριν διαγράψετε τυχόν δεδομένα από τη βάση δεδομένων. Αυτό μπορεί να σας επιτρέψει να επαναφέρετε τη βάση δεδομένων και να προβάλετε τα δεδομένα αργότερα εάν απαιτείται.

Πώς να διαγράψετε μια σειρά στο MySQL

Για να διαγράψετε μια σειρά στη MySQL, χρησιμοποιείται η δήλωση DELETE FROM:

DELETE FROM `table_name` [WHERE condition];

ΕΔΩ

  • ΔΙΑΓΡΑΦΗ ΑΠΟ το «table_name` λέει στον διακομιστή MySQL να αφαιρέσει σειρές από τον πίνακα…
  • Το [WHERE condition] είναι προαιρετικό και χρησιμοποιείται για την τοποθέτηση ενός φίλτρου που περιορίζει τον αριθμό των σειρών που επηρεάζονται από το ερώτημα σειράς MySQL DELETE.

Εάν ο όρος WHERE δεν χρησιμοποιείται στο ερώτημα ΔΙΑΓΡΑΦΗ MySQL, τότε όλες οι σειρές σε έναν δεδομένο πίνακα θα διαγραφούν.

Παράδειγμα MySQL Delete Query

Πριν προχωρήσουμε σε περισσότερες λεπτομέρειες συζητήστε την εντολή ΔΙΑΓΡΑΦΗ, ας εισαγάγουμε μερικά δείγματα δεδομένων στον πίνακα ταινιών για να εργαστούμε.

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

Η εκτέλεση του παραπάνω σεναρίου προσθέτει τρεις (3) ταινίες στον πίνακα ταινιών. Πριν προχωρήσουμε περισσότερο στο μάθημά μας, ας πάρουμε όλες τις ταινίες στο τραπέζι μας. Το σενάριο που φαίνεται παρακάτω το κάνει αυτό.

SELECT * FROM `movies`;

Η εκτέλεση του παραπάνω σεναρίου μας δίνει τα ακόλουθα αποτελέσματα.

 
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

Ας υποθέσουμε ότι η βιβλιοθήκη βίντεο του Myflix δεν επιθυμεί πλέον να ενοικιάζει το "The Great Dictator" στα μέλη της και θέλουν να αφαιρεθεί από τη βάση δεδομένων. Το αναγνωριστικό ταινίας του είναι 18, μπορούμε να χρησιμοποιήσουμε το σενάριο που εμφανίζεται παρακάτω για να διαγράψουμε τη σειρά του από τον πίνακα ταινιών.

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

Η εκτέλεση του παραπάνω σεναρίου στο MySQL WorkBench ενάντια στο Myflix διαγράφει την ταινία με το αναγνωριστικό 18 από τον πίνακα βάσης δεδομένων.

Ας δούμε την τρέχουσα κατάσταση του πίνακα ταινιών.

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

ΣΗΜΕΙΩΣΗ:

  • η ταινία με αναγνωριστικό 18 δεν έχει επιστρέψει στο σύνολο αποτελεσμάτων ερωτήματος.
  • δεν μπορείτε να διαγράψετε μία στήλη για έναν πίνακα. Μπορείτε να διαγράψετε μια ολόκληρη σειρά.

Ας υποθέσουμε ότι έχουμε μια λίστα με ταινίες που θέλουμε να διαγράψουμε. Μπορούμε να χρησιμοποιήσουμε τον όρο WHERE μαζί με το IN.

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

Η εκτέλεση του παραπάνω σεναρίου διαγράφει ταινίες με αναγνωριστικά 20 και 21 από τον πίνακα ταινιών μας.

Περίληψη

  • Η εντολή διαγραφής χρησιμοποιείται για την αφαίρεση δεδομένων που δεν απαιτούνται πλέον από έναν πίνακα.
  • Ο όρος "WHERE" χρησιμοποιείται για τον περιορισμό του αριθμού των σειρών που επηρεάζονται από το ερώτημα DELETE.
  • Μόλις διαγραφούν τα δεδομένα, δεν είναι δυνατή η ανάκτησή τους, συνιστάται επομένως να δημιουργείτε αντίγραφα ασφαλείας πριν από τη διαγραφή δεδομένων.