ΥΠΑΡΧΕΙ PostgreSQL με παραδείγματα

Τι είναι το PostgreSQL Exists;

Ο τελεστής EXISTS ελέγχει εάν υπάρχει μια σειρά (ες) σε ένα ερώτημα. Αυτό σημαίνει ότι ο χειριστής χρησιμοποιείται μαζί με ένα δευτερεύον ερώτημα. Ο τελεστής Exists λέγεται ότι έχει συναντηθεί όταν βρίσκεται τουλάχιστον μία σειρά στο ερώτημα. Μπορείτε να χρησιμοποιήσετε αυτήν τη λειτουργία μαζί με τις δηλώσεις SELECT, UPDATE, INSERT και DELETE.

Σε αυτό το σεμινάριο PostgreSQL, θα μάθετε τα εξής:

  • Σύνταξη
  • Με SELECT Statement
  • Με δήλωση INSERT
  • Με δήλωση ΕΝΗΜΕΡΩΣΗΣ
  • Με ΔΙΑΓΡΑΦΗ Δήλωση
  • Με το pgAdmin

Σύνταξη

Ακολουθεί η σύνταξη για τη δήλωση PostgreSQL EXISTS:

WHERE EXISTS (subquery);

Η παραπάνω σύνταξη δείχνει ότι ο τελεστής EXISTS παίρνει ένα όρισμα, το οποίο είναι ένα υποερώτημα. Το δευτερεύον ερώτημα είναι απλώς μια δήλωση SELECT που πρέπει να ξεκινά με SELECT * αντί για μια λίστα με ονόματα στηλών ή εκφράσεις.

Με SELECT Statement

Ας δούμε πώς να χρησιμοποιήσετε μια δήλωση SELECT με τον τελεστή EXISTS. Έχουμε τους ακόλουθους πίνακες:

Βιβλίο:

Τιμή:

Εκτελέστε την ακόλουθη δήλωση:

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

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

Η παραπάνω εντολή πρέπει να επιστρέφει όλες τις εγγραφές στον πίνακα Βιβλίων του οποίου το αναγνωριστικό ταιριάζει με το αναγνωριστικό οποιασδήποτε εγγραφής από το υποερώτημα. Αντιστοιχίστηκε μόνο ένα αναγνωριστικό. Ως εκ τούτου, επιστράφηκε μόνο ένας δίσκος.

Με δήλωση INSERT

Μπορούμε να χρησιμοποιήσουμε τον τελεστή EXISTS σε μια δήλωση INSERT. Έχουμε τους ακόλουθους 3 πίνακες:

Βιβλίο:

Τιμή:

Τιμή2:

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

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Ο πίνακας τιμών έχει ως εξής:

Η σειρά με αναγνωριστικό 5 στον πίνακα που ονομάζεται Price2 ταιριάζει. Αυτή η εγγραφή στη συνέχεια εισήχθη στον πίνακα τιμών.

Με δήλωση ΕΝΗΜΕΡΩΣΗΣ

Μπορούμε να χρησιμοποιήσουμε τον τελεστή EXISTS σε μια δήλωση ΕΝΗΜΕΡΩΣΗΣ.

Εκτελέστε το ακόλουθο ερώτημα:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Ενημερώνουμε τη στήλη τιμών του πίνακα τιμών. Στόχος μας είναι οι τιμές των αντικειμένων που μοιράζονται ένα αναγνωριστικό να είναι ίδιες. Αντιστοιχίστηκε μόνο μία σειρά, δηλαδή 5.

Ωστόσο, δεδομένου ότι οι τιμές είναι ίσες, δηλαδή 205, δεν έγινε ενημέρωση. Εάν υπήρχε διαφορά, θα είχε γίνει ενημέρωση.

Με ΔΙΑΓΡΑΦΗ Δήλωση

Μια δήλωση PostgreSQL DELETE μπορεί να χρησιμοποιήσει τον τελεστή EXISTS. Εδώ είναι ένα παράδειγμα:

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

Ο πίνακας τιμών έχει ως εξής:

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

Με το pgAdmin

Τώρα ας δούμε πώς μπορούν να εκτελεστούν αυτές οι ενέργειες χρησιμοποιώντας το pgAdmin.

Με SELECT Statement

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

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

Βήμα 2)

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

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

SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);

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

Θα πρέπει να επιστρέψει τα ακόλουθα:

Με δήλωση INSERT

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

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

Βήμα 2)

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

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

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

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

Ο πίνακας τιμών πρέπει τώρα να έχει ως εξής:

Με δήλωση ΕΝΗΜΕΡΩΣΗΣ

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

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

Βήμα 2)

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

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

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

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

Ο πίνακας τιμών πρέπει τώρα να έχει ως εξής:

Με ΔΙΑΓΡΑΦΗ Δήλωση

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

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

Βήμα 2)

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

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

DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);

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

Ο πίνακας τιμών πρέπει τώρα να έχει ως εξής:

Περίληψη

  • Ο τελεστής EXISTS ελέγχει εάν υπάρχει μια σειρά (ες) σε ένα ερώτημα.
  • Χρησιμοποιείται με ένα δευτερεύον ερώτημα και λέγεται ότι ικανοποιήθηκε όταν το υποερώτημα επιστρέφει τουλάχιστον μία σειρά.
  • Χρησιμοποιείται μαζί με τις δηλώσεις SELECT, UPDATE, INSERT και DELETE.

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

ενδιαφέροντα άρθρα...