PostgreSQL Διαγραφή ερωτήματος (Διαγραφή σειρών από επιλογή)
Διαγραφή ερωτήματος σε PostgreSQL
The Διαγραφή δήλωσης in PostgreSQL χρησιμοποιείται για τη διαγραφή μιας ή περισσότερων εγγραφών από έναν πίνακα. Εάν θέλετε να διαγράψετε, επιλέξτε γραμμές από έναν πίνακα PostgreSQL σας επιτρέπει να συνδυάσετε τη δήλωση DELETE με την πρόταση WHERE διαφορετικά θα διαγράψει όλες τις εγγραφές.
Postgres Διαγραφή σύνταξης ερωτήματος
Η δήλωση 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.
- τραπέζι-όνομα: το όνομα του πίνακα από τον οποίο θα διαγραφούν οι εγγραφές.
- ψευδώνυμο: αυτό είναι ένα υποκατάστατο για το όνομα του πίνακα προορισμού.
- using-list: εκφράσεις πίνακα για να επιτρέπεται η χρήση στηλών από άλλους πίνακες στον όρο WHERE.
- συνθήκες): προαιρετικός. Είναι οι προϋποθέσεις που πρέπει να πληρούνται για να διαγραφούν οι εγγραφές. Εάν αυτή η ενότητα δεν παρέχεται, όλες οι εγγραφές ονόματος πίνακα θα διαγραφούν.
- δρομέας-όνομα: ο κέρσορας που θα χρησιμοποιηθεί σε κατάσταση ΟΠΟΥ ΤΡΕΧΟΝΤΑΙ. Η τελευταία γραμμή που ανακτήθηκε από αυτόν τον δρομέα θα διαγραφεί.
- έξοδο-έκφραση: η έκφραση που πρόκειται να υποβληθεί σε επεξεργασία και να επιστραφεί με δήλωση DELETE μετά τη διαγραφή κάθε σειράς.
- έξοδος-όνομα: το όνομα που θα χρησιμοποιηθεί για την επιστρεφόμενη στήλη.
Σημειώστε ότι εφόσον η δήλωση DELETE διαγράφει ολόκληρη τη σειρά, δεν χρειάζεται να καθορίσετε τα ονόματα των στηλών.
PostgreSQL Διαγραφή ερωτήματος με μία προϋπόθεση
Η δήλωση DELETE μπορεί να χρησιμοποιηθεί με μία μόνο συνθήκη. Η συνθήκη ορίζεται χρησιμοποιώντας την ρήτρα WHERE. Εξετάστε τον πίνακα τιμών με τα ακόλουθα δεδομένα:
Τιμή
Ας διαγράψουμε την εγγραφή με αναγνωριστικό 4:
DELETE FROM Price WHERE id = 4;
Η παραπάνω εντολή θα διαγράψει τις εγγραφές στις οποίες το αναγνωριστικό είναι 4. Ας επιβεβαιώσουμε εάν η διαγραφή ήταν επιτυχής:
Η σειρά με αναγνωριστικό 4 έχει διαγραφεί.
Διαγραφή ερωτήματος με δύο προϋποθέσεις
The PostgreSQL Η δήλωση DELETE μπορεί να έχει δύο προϋποθέσεις. Οι δύο συνθήκες πρέπει να ενωθούν χρησιμοποιώντας τον τελεστή AND. Θα χρησιμοποιήσουμε τον παρακάτω πίνακα:
Τιμή:
Εξετάστε το παράδειγμα που δίνεται παρακάτω:
DELETE FROM Price WHERE id = 3Y AND price = 300;
Στην παραπάνω εντολή, διαγράφουμε τη σειρά στην οποία το αναγνωριστικό είναι 3 και η τιμή είναι 300. Μπορούμε τώρα να κάνουμε ερώτημα στον πίνακα:
SELECT * FROM Price
Αυτό επιστρέφει τα ακόλουθα:
Ο δίσκος με αναγνωριστικό 3 και τιμή 300 διαγράφηκε.
PostgreSQL Διαγραφή ερωτήματος με χρήση της συνθήκης υπάρχει
Με την συνθήκη EXISTS, μπορείτε να κάνετε το DELETE πιο περίπλοκο. Μερικές φορές, μπορεί να χρειαστεί να διαγράψετε εγγραφές σε έναν πίνακα με βάση τις εγγραφές σε έναν άλλο πίνακα.
Θα δείτε ότι ο όρος FROM δεν σας επιτρέπει να καταχωρίσετε εγγραφές από περισσότερους από έναν πίνακες κατά την εκτέλεση διαγραφής, ο όρος EXISTS γίνεται πολύ χρήσιμος. Έχουμε τους παρακάτω δύο πίνακες:
Βιβλίο:
Τιμή:
Στη συνέχεια, μπορούμε να εκτελέσουμε το ακόλουθο ερώτημα:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Η παραπάνω εντολή θα διαγράψει από τον πίνακα Βιβλίο όπου υπάρχει μια εγγραφή στον πίνακα Τιμή με αναγνωριστικό που ταιριάζει με αυτό του πίνακα Βιβλίο και η τιμή είναι μικρότερη από 250.
Ο πίνακας του βιβλίου έχει πλέον ως εξής:
Η εγγραφή με αναγνωριστικό 1 διαγράφηκε.
Πώς να διαγράψετε τη σειρά PostgreSQL χρησιμοποιώντας το pgAdmin
Ακολουθούν τα βήματα για να διαγράψετε μια σειρά PostgreSQL χρησιμοποιώντας το pgAdmin:
Με μία προϋπόθεση
Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin
Ανοίξτε το pgAdmin και συνδεθείτε στο λογαριασμό σας χρησιμοποιώντας τα διαπιστευτήριά σας
Βήμα 2) Δημιουργήστε μια βάση δεδομένων επίδειξης
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα
Πληκτρολογήστε το παρακάτω ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Price WHERE id = 4;
Βήμα 4) Εκτελέστε το ερώτημα
Κάντε κλικ στο κουμπί Εκτέλεση
Βήμα 5) Ελέγξτε εάν η σειρά έχει διαγραφεί
Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:
Με δύο προϋποθέσεις
Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Price WHERE id = 3 AND price = 300;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:
Χρήση της συνθήκης EXISTS
Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:
Σύνοψη
- Η πρόταση DELETE χρησιμοποιείται για τη διαγραφή μιας ή περισσότερων εγγραφών από έναν πίνακα.
- Για να διαγράψετε μόνο επιλεγμένες σειρές από έναν πίνακα, μπορείτε να συνδυάσετε την πρόταση DELETE με την πρόταση WHERE.
- Εάν ο όρος DELETE χρησιμοποιείται χωρίς τον όρο WHERE, διαγράφει όλες τις εγγραφές από τον πίνακα.
- Η παράμετρος table-name σάς επιτρέπει να προσθέσετε το όνομα του πίνακα από τον οποίο θα διαγραφούν οι εγγραφές.
- Μπορούμε να χρησιμοποιήσουμε τη δήλωση DELETE με μία προϋπόθεση, που καθορίζεται χρησιμοποιώντας την ρήτρα WHERE.
- Η δήλωση DELETE μπορεί επίσης να χρησιμοποιηθεί με δύο συνθήκες που καθορίζονται στον όρο WHERE. Οι δύο συνθήκες πρέπει να ενωθούν χρησιμοποιώντας τον τελεστή AND.
- The ΥΠΑΡΧΕΙ συνθήκη μπορεί να μας βοηθήσει να διαγράψουμε εγγραφές από έναν πίνακα με βάση τις εγγραφές ενός άλλου πίνακα.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο