Πώς να χρησιμοποιήσετε την εντολή DELETE στο PostgreSQL
Με το PostgreSQL DELETE, μπορείτε να διαγράψετε δεδομένα από έναν πίνακα. Η εντολή μπορεί να περιοριστεί με τη χρήση συνθηκών, επιτρέποντάς σας να καθορίσετε τη διαγραφή συγκεκριμένων σειρών. Δεδομένου ότι οι διαγραφές στο PostgreSQL είναι μη αναστρέψιμες, είναι σημαντικό να χρησιμοποιείτε την εντολή με προσοχή.
Τι είναι το PostgreSQL DELETE;
Η εντολή DELETE στο PostgreSQL χρησιμοποιείται για τη διαγραφή εγγραφών από έναν πίνακα. Χρησιμοποιώντας τη ρήτρα WHERE, μπορείτε να επιλέξετε συγκεκριμένες σειρές για διαγραφή. Χωρίς τη ρήτρα WHERE, όλα τα δεδομένα του πίνακα που καθορίζετε θα διαγραφούν οριστικά. Επειδή τα δεδομένα διαγράφονται οριστικά, θα πρέπει να είστε προσεκτικοί κατά τη χρήση αυτής της εντολής.
Ποια είναι η σύνταξη για το PostgreSQL DELETE;
Η βασική σύνταξη του PostgreSQL DELETE έχει ως εξής:
DELETE FROM table_name
WHERE [condition];postgresqlΗ εντολή DELETE FROM ξεκινά τη διαγραφή σειρών στον πίνακα που καθορίζετε. Η ρήτρα WHERE σας επιτρέπει να καθορίσετε μεμονωμένες σειρές από τις οποίες πρέπει να διαγραφούν τα δεδομένα. Για να εφαρμόσετε πολλαπλές συνθήκες, μπορείτε να χρησιμοποιήσετε AND ή OR.
Πριν διαγράψετε δεδομένα, βεβαιωθείτε ότι διαθέτετε ένα ενημερωμένο αντίγραφο ασφαλείας της βάσης δεδομένων. Μπορείτε επίσης να εκτελέσετε τη διαδικασία διαγραφής στο πλαίσιο μιας συναλλαγής. Αυτό συμβάλλει στην αποφυγή τυχαίας απώλειας δεδομένων σε περίπτωση που η εντολή εκτελεστεί λανθασμένα.
Πώς να διαγράψετε δεδομένα από έναν πίνακα
Για να κατανοήσουμε καλύτερα πώς λειτουργεί DELETE στο PostgreSQL, ας δούμε ένα πρακτικό παράδειγμα. Πρώτα, θα χρησιμοποιήσουμε την εντολή CREATE TABLE για να δημιουργήσουμε έναν πίνακα με το όνομα «customer_list». Στη συνέχεια, θα τον συμπληρώσουμε χρησιμοποιώντας την εντολή INSERT INTO. Ο πίνακας έχει τρεις στήλες (id, name και city) και περιέχει τέσσερις εγγραφές:
|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|postgresqlΕάν χρησιμοποιήσετε την εντολή PostgreSQL DELETE χωρίς συνθήκη, όλα τα δεδομένα του πίνακα θα διαγραφούν. Η ίδια η δομή του πίνακα, ωστόσο, δεν θα διαγραφεί. Η εντολή έχει την εξής μορφή:
DELETE FROM customer_list;postgresqlΠώς να διαγράψετε μια σειρά στο PostgreSQL
Συχνά, θα χρειαστεί να διαγράψετε μια μεμονωμένη σειρά. Μπορείτε να το κάνετε αυτό συμπεριλαμβάνοντας μια ρήτρα WHERE. Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να διαγράψουμε τον Sullivan (αριθμός ταυτότητας 2) από τη λίστα μας. Μπορούμε να χρησιμοποιήσουμε τον παρακάτω κώδικα για να το κάνουμε:
DELETE FROM customer_list
WHERE id = 2;postgresqlΠώς να προσδιορίσετε μια σειρά χρησιμοποιώντας πολλαπλές συνθήκες
Εάν εργάζεστε με μεγάλους πίνακες, ενδέχεται να υπάρχουν διπλές εγγραφές. Για να διασφαλίσετε ότι θα διαγραφεί μόνο μία σειρά, μπορείτε να χρησιμοποιήσετε πολλαπλές συνθήκες. Στον παραπάνω πίνακα, έχουμε δύο πελάτες με το όνομα Haines, αλλά θέλουμε να διαγράψουμε μόνο τη δεύτερη εγγραφή. Για να το κάνουμε αυτό, μπορούμε να συνδυάσουμε δύο συνθήκες:
DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;postgresqlΑυτή η εντολή διαγράφει όλες τις σειρές με το όνομα Haines στις οποίες το πεδίο id έχει τιμή μεγαλύτερη ή ίση με 3. Δεδομένου ότι η πρώτη εγγραφή που περιέχει το όνομα Haines έχει στο πεδίο id τιμή μικρότερη από 3, παραμένει στη βάση δεδομένων μετά την εκτέλεση της εντολής διαγραφής.