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

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

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

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

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

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

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

DELETE FROM `table_name` [WHERE condition];

ΕΔΩ

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

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

Παράδειγμα MySQL Διαγραφή ερωτήματος

Πριν προχωρήσουμε σε πιο λεπτομερή συζήτηση σχετικά με τη δήλωση SQL DELETE, ας εισαγάγουμε μερικά δείγματα δεδομένων στον πίνακα ταινιών για να εργαστούμε.

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

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

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

Εκτέλεση του παραπάνω σεναρίου στο MySQL πάγκος εργασίας ενάντια στο Myflix διαγράφει την ταινία με id 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

ΣΗΜΕΊΩΣΗ:

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

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

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

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

Σύνοψη

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