PostgreSQL Συνάρτηση SUBSTRING() με Παράδειγμα Regex
Τι είναι PostgreSQL Υποσυμβολοσειρά;
The PostgreSQL Η λειτουργία substring σάς βοηθά να εξαγάγετε και να επιστρέψετε μέρος μιας συμβολοσειράς. Αντί να επιστρέψει ολόκληρη τη συμβολοσειρά, επιστρέφει μόνο ένα μέρος της.
Σύνταξη
The PostgreSQL Η συνάρτηση substring παίρνει την ακόλουθη σύνταξη:
substring( string [from starting_position] [for length] )
παράμετροι
Όνομα | Descriptιόν |
---|---|
κορδόνι | Η συμβολοσειρά πηγής του οποίου ο τύπος δεδομένων είναι varchar, char, string κ.λπ. |
θέση εκκίνησης | Είναι μια προαιρετική παράμετρος. Δηλώνει το μέρος όπου θα ξεκινήσει η εξαγωγή της χορδής. Εάν παραλείψετε αυτήν την παράμετρο, η εξαγωγή θα ξεκινήσει από τη θέση 1, που είναι ο πρώτος χαρακτήρας στη συμβολοσειρά. |
μήκος | Είναι μια προαιρετική παράμετρος. Δηλώνει τον αριθμό των χαρακτήρων που πρέπει να εξαχθούν από τη συμβολοσειρά. Εάν παραλείψετε αυτήν την παράμετρο, η συνάρτηση θα εξαχθεί από την αρχική_θέση μέχρι το τέλος της συμβολοσειράς. |
Παραδείγματα
Σε αυτό το παράδειγμα, θέλουμε να εξαγάγουμε τους 4 πρώτους χαρακτήρες από τη λέξη Guru99:
SELECT substring('Guru99' for 4);
Η εντολή θα επιστρέψει τα εξής:
Δεν προσδιορίσαμε την αρχική θέση, επομένως η εξαγωγή της υποσυμβολοσειράς ξεκινά από τη θέση 1. Εξήχθησαν 4 χαρακτήρες για την επιστροφή των παραπάνω.
Το ακόλουθο παράδειγμα δείχνει πώς να καθορίσετε την αρχική θέση:
SELECT substring('Guru99' from 1 for 4);
Η εντολή θα επιστρέψει τα εξής:
Καθορίσαμε ότι η εξαγωγή της υποσυμβολοσειράς θα πρέπει να ξεκινά από τη θέση 1 και να εξαχθούν 4 χαρακτήρες.
Ας εξαγάγουμε το 99 από τη συμβολοσειρά Guru99:
SELECT substring('Guru99' from 5);
Η εντολή θα επιστρέψει τα εξής:
Καθορίσαμε την αρχική θέση ως 5. Δεδομένου ότι ο αριθμός των προς εξαγωγή χαρακτήρων δεν είχε καθοριστεί, η εξαγωγή έφτασε στο τέλος της συμβολοσειράς.
Εδώ είναι ένα άλλο παράδειγμα:
SELECT substring('Guru99' from 5 for 2);
Η εντολή θα επιστρέψει τα εξής:
Ξεκινήσαμε την εξαγωγή στη θέση 5 και έχουν εξαχθεί 2 χαρακτήρες.
Εξετάστε τον πίνακα Βιβλίων που δίνεται παρακάτω:
Θέλουμε να πάρουμε μια γενική ιδέα για το όνομα κάθε βιβλίου. Ωστόσο, μπορούμε να εξαγάγουμε μόνο τους πρώτους 15 χαρακτήρες από τη στήλη ονόματος του πίνακα:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Η εντολή θα επιστρέψει τα εξής:
Τώρα έχουμε μια πρόχειρη ιδέα για το όνομα κάθε βιβλίου.
Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL
In PostgreSQL, μπορούμε να εξαγάγουμε μια υποσυμβολοσειρά που ταιριάζει με μια καθορισμένη τυπική έκφραση POSIX. Σε αυτήν την περίπτωση, η συνάρτηση υποσυμβολοσειράς χρησιμοποιείται με την ακόλουθη σύνταξη:
SUBSTRING(string FROM matching_pattern)
or
SUBSTRING(string, matching_pattern);
Ακολουθεί μια επεξήγηση των παραπάνω παραμέτρων:
Η συμβολοσειρά είναι η συμβολοσειρά πηγής της οποίας Τύπος δεδομένων είναι varchar, char, string κ.λπ.
Το matching_pattern είναι το μοτίβο που θα χρησιμοποιηθεί για την αναζήτηση στη συμβολοσειρά.
Παραδείγματα
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
Η εντολή θα επιστρέψει τα εξής:
Η συμβολοσειρά εισόδου μας είναι ότι η ηλικία σας είναι 22 ετών. Στο μοτίβο, αναζητούμε ένα αριθμητικό μοτίβο στη συμβολοσειρά μας όταν αυτό βρεθεί, η συνάρτηση υποσυμβολοσειράς θα πρέπει να εξάγει μόνο δύο χαρακτήρες.
Πώς να αντιστοιχίσετε υποσυμβολοσειρές χρησιμοποιώντας το pgAdmin
Τώρα ας δούμε πώς εκτελούνται οι ενέργειες χρησιμοποιώντας το pgAdmin.
Τα παραπάνω ερωτήματα όπου δεν χρειαζόμαστε βάση δεδομένων μπορούν να εκτελεστούν απευθείας από το παράθυρο του προγράμματος επεξεργασίας ερωτημάτων. Απλώς κάντε τα εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας.
Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2) Στο pgAdmin,
Κάντε κλικ στο εικονίδιο του Εργαλείου εξατομικευμένων αναφορών.
Θα ανοίξει το παράθυρο επεξεργασίας ερωτημάτων.
Βήμα 3) Πληκτρολογήστε ερώτημα.
Πληκτρολογήστε το ακόλουθο ερώτημα στο παράθυρο του προγράμματος επεξεργασίας.
SELECT substring('Guru99' for 4);
Βήμα 4) Εκτέλεση ερωτήματος
Κάντε κλικ στο εικονίδιο Εκτέλεση για να εκτελέσετε το ερώτημα.
Βήμα 5) Η εκτέλεση του ερωτήματος έχει ολοκληρωθεί.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Παράδειγμα 2:
SELECT substring('Guru99' from 1 for 4);
Θα πρέπει να επιστρέψει τα ακόλουθα:
Εδώ είναι το επόμενο παράδειγμα:
SELECT substring('Guru99' from 5);
Θα πρέπει να επιστρέψει τα ακόλουθα:
Παράδειγμα 3:
SELECT substring('Guru99' from 5 for 2);
Θα πρέπει να επιστρέψει τα ακόλουθα:
Τώρα, ας εκτελέσουμε το παράδειγμα χρησιμοποιώντας τον πίνακα Book της βάσης δεδομένων επίδειξης:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Τώρα έχουμε μια βασική ιδέα για το όνομα κάθε βιβλίου.
Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL
Για να κάνετε το ίδιο στο pgAdmin, κάντε τα εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2) Κάντε κλικ στο εικονίδιο του Εργαλείου εξατομικευμένων αναφορών.
Θα ανοίξει το παράθυρο επεξεργασίας ερωτημάτων.
Βήμα 3) Πληκτρολογήστε το ακόλουθο ερώτημα στο παράθυρο του προγράμματος επεξεργασίας.
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
Βήμα 4) Κάντε κλικ στο εικονίδιο Εκτέλεση για να εκτελέσετε το ερώτημα.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Σύνοψη
- The PostgreSQL Η συνάρτηση υποσυμβολοσειράς βοηθά στην εξαγωγή και την επιστροφή μόνο ενός μέρους μιας συμβολοσειράς.
- Ο πρώτος χαρακτήρας της συμβολοσειράς βρίσκεται στη θέση 1.
- Εάν δεν έχει καθοριστεί ο αριθμός των χαρακτήρων που θα εξαχθούν από τη συμβολοσειρά, η συνάρτηση θα εξαγάγει χαρακτήρες από την καθορισμένη θέση έναρξης μέχρι το τέλος της συμβολοσειράς.
- Εάν έχει καθοριστεί ο αριθμός των προς εξαγωγή χαρακτήρων, θα εξαχθεί μόνο αυτός ο αριθμός χαρακτήρων.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο