PostgreSQL ΔΙΑΓΡΑΦΗ γραμμών από την επιλογή
⚡ Έξυπνη Σύνοψη
PostgreSQL Η συνάρτηση DELETE καταργεί μία ή περισσότερες γραμμές από έναν πίνακα και η αντιστοίχισή της με μια ρήτρα WHERE στοχεύει μόνο τις εγγραφές που ταιριάζουν με μια συνθήκη, ενώ η παράλειψη της συνάρτησης WHERE διαγράφει κάθε γραμμή στον πίνακα.

Διαγραφή ερωτήματος σε PostgreSQL
The Δήλωση DELETE in PostgreSQL χρησιμοποιείται για τη διαγραφή μίας ή περισσότερων εγγραφών από έναν πίνακα. Για να διαγράψετε μόνο επιλεγμένες γραμμές από έναν πίνακα, PostgreSQL σας επιτρέπει να συνδυάσετε την πρόταση DELETE με τον όρο WHERE. Διαφορετικά, διαγράφει όλες τις εγγραφές στον πίνακα.
PostgreSQL Διαγραφή σύνταξης ερωτήματος
Η εντολή DELETE μπορεί να οριστεί χρησιμοποιώντας την παρακάτω σύνταξη:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Παράμετροι
Οι ακόλουθες παράμετροι είναι διαθέσιμες:
- με-ερώτημα: η ρήτρα WITH σάς επιτρέπει να αναφέρετε ένα ή περισσότερα υποερωτήματα ονομαστικά μέσα στο ερώτημα DELETE.
- τραπέζι-όνομα: το όνομα του πίνακα από τον οποίο θα διαγραφούν οι εγγραφές.
- ψευδώνυμο: ένα υποκατάστατο του ονόματος του πίνακα προορισμού.
- χρησιμοποιώντας-λίστα: παραστάσεις πίνακα που επιτρέπουν τη χρήση στηλών από άλλους πίνακες στον όρο WHERE.
- συνθήκες): προαιρετικό. Αυτές είναι οι προϋποθέσεις που πρέπει να πληρούνται για τη διαγραφή εγγραφών. Εάν δεν παρέχεται αυτή η ενότητα, όλες οι εγγραφές ονόματος πίνακα θα διαγραφούν.
- δρομέας-όνομα: ο δρομέας που θα χρησιμοποιηθεί στη συνθήκη WHERE CURRENT OF. Η τελευταία γραμμή που ανακτήθηκε από αυτόν τον δρομέα θα διαγραφεί.
- έξοδο-έκφραση: η έκφραση που θα υποβληθεί σε επεξεργασία και θα επιστραφεί από την εντολή DELETE μετά τη διαγραφή κάθε γραμμής.
- έξοδος-όνομα: το όνομα που θα χρησιμοποιηθεί για την επιστρεφόμενη στήλη.
Σημειώστε ότι επειδή η εντολή DELETE διαγράφει ολόκληρη τη γραμμή, δεν χρειάζεται να καθορίσετε τα ονόματα των στηλών.
PostgreSQL Διαγραφή ερωτήματος με μία προϋπόθεση
Η πρόταση DELETE μπορεί να χρησιμοποιηθεί με μία μόνο συνθήκη, η οποία ορίζεται χρησιμοποιώντας την ρήτρα WHERE. Θεωρήστε τον πίνακα Price με τα ακόλουθα δεδομένα:
Τιμή:
Ας διαγράψουμε την εγγραφή με αναγνωριστικό 4:
DELETE FROM Price WHERE id = 4;
Η παραπάνω εντολή διαγράφει τις εγγραφές στις οποίες το id είναι 4. Ας επιβεβαιώσουμε εάν η διαγραφή ήταν επιτυχής:
Η σειρά με αναγνωριστικό 4 έχει διαγραφεί.
Διαγραφή ερωτήματος με δύο προϋποθέσεις
The PostgreSQL Η εντολή DELETE μπορεί επίσης να λάβει δύο συνθήκες. Οι δύο συνθήκες πρέπει να συνδεθούν χρησιμοποιώντας τον τελεστή AND. Θα χρησιμοποιήσουμε τον ακόλουθο πίνακα:
Τιμή:
Εξετάστε το παράδειγμα που δίνεται παρακάτω:
DELETE FROM Price WHERE id = 3 AND price = 300;
Στην παραπάνω εντολή, διαγράφουμε τη γραμμή στην οποία το id είναι 3 και η τιμή είναι 300. Τώρα μπορούμε να υποβάλουμε ερώτημα στον πίνακα:
SELECT * FROM Price;
Αυτό επιστρέφει τα ακόλουθα:
Ο δίσκος με αναγνωριστικό 3 και τιμή 300 διαγράφηκε.
PostgreSQL Διαγραφή ερωτήματος χρησιμοποιώντας τη συνθήκη EXISTS
Με την ΥΠΑΡΧΕΙ Συνθήκη, μπορείτε να κάνετε τη ΔΙΑΓΡΑΦΗ πιο περίπλοκη. Μερικές φορές μπορεί να χρειαστεί να διαγράψετε εγγραφές σε έναν πίνακα με βάση εγγραφές σε έναν άλλο πίνακα.
Επειδή η ρήτρα FROM δεν σας επιτρέπει να παραθέσετε εγγραφές από περισσότερους από έναν πίνακες κατά την εκτέλεση μιας διαγραφής, η ρήτρα EXISTS γίνεται πολύ χρήσιμη. Έχουμε τους ακόλουθους δύο πίνακες:
Βιβλίο:
Τιμή:
Στη συνέχεια, μπορούμε να εκτελέσουμε το ακόλουθο ερώτημα:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Η εντολή διαγράφει γραμμές από τον πίνακα Βιβλίο που έχουν αντίστοιχο αναγνωριστικό στον πίνακα Τιμή με τιμή κάτω από 250.
Ο πίνακας του βιβλίου έχει πλέον ως εξής:
Η εγγραφή με αναγνωριστικό 1 διαγράφηκε.
Πώς να διαγράψετε μια γραμμή στο PostgreSQL χρησιμοποιώντας το pgAdmin
Τα ίδια ερωτήματα διαγραφής μπορούν επίσης να εκτελεστούν οπτικά μέσω της διεπαφής pgAdmin, ακολουθώντας τα παρακάτω βήματα:
Με έναν όρο
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin. Ανοίξτε το pgAdmin και συνδεθείτε στον λογαριασμό σας χρησιμοποιώντας τα διαπιστευτήριά σας.
Βήμα 2) Δημιουργήστε μια βάση δεδομένων επίδειξης.
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το παρακάτω ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Price WHERE id = 4;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Ας ελέγξουμε αν η γραμμή διαγράφηκε:
Με δύο προϋποθέσεις
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Price WHERE id = 3 AND price = 300;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:
Χρήση της συνθήκης EXISTS
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο
















