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. Εξετάστε τον πίνακα τιμών με τα ακόλουθα δεδομένα:

Τιμή

PostgreSQL Διαγραφή ερωτήματος με μία προϋπόθεση

Ας διαγράψουμε την εγγραφή με αναγνωριστικό 4:

DELETE FROM Price
WHERE id = 4;

Η παραπάνω εντολή θα διαγράψει τις εγγραφές στις οποίες το αναγνωριστικό είναι 4. Ας επιβεβαιώσουμε εάν η διαγραφή ήταν επιτυχής:

PostgreSQL Διαγραφή ερωτήματος με μία προϋπόθεση

Η σειρά με αναγνωριστικό 4 έχει διαγραφεί.

Διαγραφή ερωτήματος με δύο προϋποθέσεις

The PostgreSQL Η δήλωση DELETE μπορεί να έχει δύο προϋποθέσεις. Οι δύο συνθήκες πρέπει να ενωθούν χρησιμοποιώντας τον τελεστή AND. Θα χρησιμοποιήσουμε τον παρακάτω πίνακα:

Τιμή:

PostgreSQL Διαγραφή ερωτήματος με δύο προϋποθέσεις

Εξετάστε το παράδειγμα που δίνεται παρακάτω:

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

Στην παραπάνω εντολή, διαγράφουμε τη σειρά στην οποία το αναγνωριστικό είναι 3 και η τιμή είναι 300. Μπορούμε τώρα να κάνουμε ερώτημα στον πίνακα:

SELECT * FROM Price

Αυτό επιστρέφει τα ακόλουθα:

PostgreSQL Διαγραφή ερωτήματος με δύο προϋποθέσεις

Ο δίσκος με αναγνωριστικό 3 και τιμή 300 διαγράφηκε.

PostgreSQL Διαγραφή ερωτήματος με χρήση της συνθήκης υπάρχει

Με την συνθήκη EXISTS, μπορείτε να κάνετε το DELETE πιο περίπλοκο. Μερικές φορές, μπορεί να χρειαστεί να διαγράψετε εγγραφές σε έναν πίνακα με βάση τις εγγραφές σε έναν άλλο πίνακα.

Θα δείτε ότι ο όρος FROM δεν σας επιτρέπει να καταχωρίσετε εγγραφές από περισσότερους από έναν πίνακες κατά την εκτέλεση διαγραφής, ο όρος EXISTS γίνεται πολύ χρήσιμος. Έχουμε τους παρακάτω δύο πίνακες:

Βιβλίο:

PostgreSQL Διαγραφή ερωτήματος με χρήση της συνθήκης υπάρχει

Τιμή:

PostgreSQL Διαγραφή ερωτήματος με χρήση της συνθήκης υπάρχει

Στη συνέχεια, μπορούμε να εκτελέσουμε το ακόλουθο ερώτημα:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Η παραπάνω εντολή θα διαγράψει από τον πίνακα Βιβλίο όπου υπάρχει μια εγγραφή στον πίνακα Τιμή με αναγνωριστικό που ταιριάζει με αυτό του πίνακα Βιβλίο και η τιμή είναι μικρότερη από 250.

Ο πίνακας του βιβλίου έχει πλέον ως εξής:

PostgreSQL Διαγραφή ερωτήματος με χρήση της συνθήκης υπάρχει

Η εγγραφή με αναγνωριστικό 1 διαγράφηκε.

Πώς να διαγράψετε τη σειρά PostgreSQL χρησιμοποιώντας το pgAdmin

Ακολουθούν τα βήματα για να διαγράψετε μια σειρά PostgreSQL χρησιμοποιώντας το pgAdmin:

Με μία προϋπόθεση

Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin

Ανοίξτε το pgAdmin και συνδεθείτε στο λογαριασμό σας χρησιμοποιώντας τα διαπιστευτήριά σας

Βήμα 2) Δημιουργήστε μια βάση δεδομένων επίδειξης

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

Διαγραφή σειράς μέσα PostgreSQL

Βήμα 3) Πληκτρολογήστε το ερώτημα

Πληκτρολογήστε το παρακάτω ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

DELETE FROM Price
WHERE id = 4;

Βήμα 4) Εκτελέστε το ερώτημα

Κάντε κλικ στο κουμπί Εκτέλεση

Διαγραφή σειράς μέσα PostgreSQL

Βήμα 5) Ελέγξτε εάν η σειρά έχει διαγραφεί

Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:

Διαγραφή σειράς μέσα PostgreSQL

Με δύο προϋποθέσεις

Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

Διαγραφή σειράς μέσα PostgreSQL

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

Διαγραφή σειράς μέσα PostgreSQL

Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:

Διαγραφή σειράς μέσα PostgreSQL

Χρήση της συνθήκης EXISTS

Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

Διαγραφή σειράς χρησιμοποιώντας την συνθήκη EXISTS

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

Διαγραφή σειράς χρησιμοποιώντας την συνθήκη EXISTS

Βήμα 5) Ας ελέγξουμε αν η διαγραφή ήταν επιτυχής:

Διαγραφή σειράς χρησιμοποιώντας την συνθήκη EXISTS

Σύνοψη

  • Η πρόταση DELETE χρησιμοποιείται για τη διαγραφή μιας ή περισσότερων εγγραφών από έναν πίνακα.
  • Για να διαγράψετε μόνο επιλεγμένες σειρές από έναν πίνακα, μπορείτε να συνδυάσετε την πρόταση DELETE με την πρόταση WHERE.
  • Εάν ο όρος DELETE χρησιμοποιείται χωρίς τον όρο WHERE, διαγράφει όλες τις εγγραφές από τον πίνακα.
  • Η παράμετρος table-name σάς επιτρέπει να προσθέσετε το όνομα του πίνακα από τον οποίο θα διαγραφούν οι εγγραφές.
  • Μπορούμε να χρησιμοποιήσουμε τη δήλωση DELETE με μία προϋπόθεση, που καθορίζεται χρησιμοποιώντας την ρήτρα WHERE.
  • Η δήλωση DELETE μπορεί επίσης να χρησιμοποιηθεί με δύο συνθήκες που καθορίζονται στον όρο WHERE. Οι δύο συνθήκες πρέπει να ενωθούν χρησιμοποιώντας τον τελεστή AND.
  • The ΥΠΑΡΧΕΙ συνθήκη μπορεί να μας βοηθήσει να διαγράψουμε εγγραφές από έναν πίνακα με βάση τις εγγραφές ενός άλλου πίνακα.

Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο

Ημερήσιο ενημερωτικό δελτίο Guru99

Ξεκινήστε τη μέρα σας με τις πιο πρόσφατες και πιο σημαντικές ειδήσεις για την Τεχνητή Νοημοσύνη, τώρα.