PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Παραδείγματα
The PostgreSQL Ο τελεστής LIKE μας βοηθά να αντιστοιχίσουμε τιμές κειμένου με μοτίβα χρησιμοποιώντας χαρακτήρες μπαλαντέρ. Είναι δυνατό να αντιστοιχίσετε την έκφραση αναζήτησης με την έκφραση μοτίβου.
Εάν συμβεί μια αντιστοίχιση, ο τελεστής LIKE επιστρέφει true. Με τη βοήθεια του τελεστή LIKE, είναι δυνατή η χρήση χαρακτήρων μπαλαντέρ στον όρο WHERE των δηλώσεων SELECT, UPDATE, INSERT ή DELETE.
Μπαλαντέρ
Υπάρχουν μόνο δύο χαρακτήρες μπαλαντέρ που μπορούν να χρησιμοποιηθούν μαζί
- σύμβολο ποσοστού (%)
- Κατω παυλα (_)
Το σύμβολο ποσοστού (%) χρησιμοποιείται για να αναπαραστήσει μηδέν, έναν ή πολλούς χαρακτήρες ή αριθμούς.
Ο χαρακτήρας μπαλαντέρ υπογράμμισης (_) χρησιμοποιείται για να αναπαραστήσει έναν χαρακτήρα ή έναν αριθμό. Αυτά τα σύμβολα μπορούν επίσης να συνδυαστούν. Εάν ο τελεστής LIKE δεν χρησιμοποιείται μαζί με αυτά τα δύο σύμβολα, θα λειτουργήσει όπως ο τελεστής ίσον.
Σύνταξη
Εδώ είναι η σύνταξη για τον τελεστή LIKE:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Η έκφραση είναι μια έκφραση χαρακτήρων όπως στήλη ή πεδίο.
Το μοτίβο είναι μια έκφραση χαρακτήρων με αντιστοίχιση μοτίβων.
Ο χαρακτήρας διαφυγής είναι μια προαιρετική παράμετρος. Επιτρέπει τον έλεγχο κυριολεκτικών παρουσιών χαρακτήρων μπαλαντέρ όπως % και _. Εάν δεν παρέχεται, το \ θα χρησιμοποιηθεί ως χαρακτήρας διαφυγής.
Χρήση χαρακτήρων μπαλαντέρ %
Όπως αναφέραμε προηγουμένως, το σύμβολο % ταιριάζει με μηδέν, έναν ή περισσότερους χαρακτήρες ή αριθμούς. Σκεφτείτε τον παρακάτω πίνακα:
Βιβλίο:
Θέλουμε το βιβλίο του οποίου το όνομα είναι σαν "Lear..." να έχει αυτό το αποτέλεσμα, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Αυτό θα επιστρέψει τα ακόλουθα:
Το βιβλίο βρέθηκε.
Ας αναζητήσουμε ένα βιβλίο «από» στο όνομά του:
SELECT * FROM Book WHERE name LIKE '%by%';
Αυτό θα επιστρέψει τα ακόλουθα:
Χρησιμοποιώντας _ μπαλαντέρ
Όπως αναφέραμε προηγουμένως, το σύμβολο _ αντιπροσωπεύει έναν χαρακτήρα ή έναν αριθμό. Μπορεί να χρησιμοποιηθεί όπως φαίνεται παρακάτω:
SELECT * FROM Book WHERE name LIKE '_earn%';
Αυτό επιστρέφει τα ακόλουθα:
Εδώ είναι ένα άλλο παράδειγμα:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
Αυτό επιστρέφει τα ακόλουθα:
Χρησιμοποιώντας το NOT OperaTor
Όταν ο τελεστής LIKE συνδυάζεται με τον τελεστή NOT, επιστρέφεται κάθε σειρά που δεν ταιριάζει με το μοτίβο αναζήτησης. Για παράδειγμα, για να δούμε ένα βιβλίο του οποίου το όνομα δεν ξεκινά με "post", μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
Αυτό επιστρέφει τα ακόλουθα:
Μόνο ένα βιβλίο πληρούσε την προϋπόθεση αναζήτησης. Ας δούμε τη λίστα με τα ονόματα βιβλίων που δεν έχουν λέξη "Made":
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
Αυτό επιστρέφει τα ακόλουθα:
3 σειρές πληρούσαν την προϋπόθεση αναζήτησης.
Χρήση του pgAdmin
Τώρα ας δούμε πώς μπορούν να εκτελεστούν οι ενέργειες χρησιμοποιώντας το pgAdmin.
Χρήση χαρακτήρων μπαλαντέρ %
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Για να αναζητήσετε ένα βιβλίο "by" στο όνομά του:
Βήμα 1) Πληκτρολογήστε την ακόλουθη εντολή στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name LIKE '%by%';
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Χρησιμοποιώντας _ μπαλαντέρ
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name LIKE '_earn%';
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Βήμα 5) Για να εκτελέσετε το δεύτερο παράδειγμα:
- Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Χρησιμοποιώντας το NOT OperaTor
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Για να δείτε όλα τα βιβλία των οποίων τα ονόματα δεν ξεκινούν με "Δημοσίευση", πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Για να δείτε τη λίστα με τα βιβλία των οποίων τα ονόματα δεν έχουν τη λέξη "Made":
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Σύνοψη
- The PostgreSQL Το LIKE χρησιμοποιείται για την αντιστοίχιση τιμών κειμένου με μοτίβα χρησιμοποιώντας χαρακτήρες μπαλαντέρ.
- Η ρήτρα LIKE μας επιτρέπει να χρησιμοποιούμε χαρακτήρες μπαλαντέρ στο SELECT, ΕΝΗΜΕΡΩΣΗ, ΕΙΣΑΓΩΓΗ ή ΔΙΑΓΡΑΦΗ δηλώσεων.
- Ο μπαλαντέρ % αντιστοιχεί σε μία ή περισσότερες τιμές. Οι τιμές μπορεί να είναι αριθμοί ή χαρακτήρες.
- Ο μπαλαντέρ _ ταιριάζει ακριβώς με μία τιμή. Η τιμή μπορεί να είναι χαρακτήρας ή αριθμός.
- Ο τελεστής LIKE μπορεί να συνδυαστεί με τον τελεστή NOT για να επιστρέψει οποιαδήποτε σειρά δεν ταιριάζει με το μοτίβο αναζήτησης.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο