PostgreSQL Συνάρτηση SUBSTRING() με Παράδειγμα Regex

⚡ Έξυπνη Σύνοψη

PostgreSQL ΥΠΟΣΥΜΠΟΡΙΑ π.χ.tracts και επιστρέφει μέρος μιας συμβολοσειράς, χρησιμοποιώντας μια προαιρετική αρχική θέση και μήκος, και επίσης αντιστοιχίζει κείμενο με μια κανονική έκφραση POSIX για να εμφανίσει μοτίβα όπως αριθμούς ή κωδικούς.

  • 📋 Σύνταξη: substring( string [από την αρχή] [για το μήκος] ) επιστρέφει ένα τμήμα της συμβολοσειράς πηγής.
  • 1️⃣ Θέσεις: Οι θέσεις των χαρακτήρων ξεκινούν από το 1 και η παράλειψη του μήκους διαβάζεται μέχρι το τέλος της συμβολοσειράς.
  • 🔎 Κανονική έκφραση: ΥΠΟΣΤΡΑΒΓΗ(συμβολοσειρά ΑΠΟ μοτίβο) π.χ.tracts το πρώτο κείμενο που ταιριάζει με μια κανονική έκφραση POSIX.
  • 🧮 Grouping: Μια ομάδα σε παρένθεση στο μοτίβο επιστρέφει μόνο το καταγεγραμμένο μέρος του αγώνα.
  • pgΔιαχειριστής: Κάθε ερώτημα δευτερεύουσας συμβολοσειράς εκτελείται με τον ίδιο τρόπο μέσα στον επεξεργαστή ερωτημάτων pgAdmin.
  • 🤖 Βοήθεια με την Τεχνητή Νοημοσύνη: Οι βοηθοί τεχνητής νοημοσύνης δημιουργούν και εξηγούν μοτίβα regex για ακριβή υποσυμβολοσειρά extracσία.

PostgreSQL Συνάρτηση SUBSTRING με Regex

Τι είναι PostgreSQL Υποσυμβολοσειρά;

The PostgreSQL Η συνάρτηση substring σας βοηθά να εξηγείτεtract και επιστρέφει μέρος μιας συμβολοσειράς. Αντί να επιστρέψει ολόκληρη τη συμβολοσειρά, επιστρέφει μόνο ένα μέρος της, κάτι που είναι χρήσιμο για την περικοπή κωδικών και την ανάγνωση πεδίων σταθερού πλάτους.

Σύνταξη

The PostgreSQL Η συνάρτηση substring παίρνει την ακόλουθη σύνταξη:

substring( string [from starting_position] [for length] )

Παράμετροι

Οι ακόλουθες παράμετροι χρησιμοποιούνται με τη συνάρτηση substring:

κορδόνι Η συμβολοσειρά πηγής του οποίου ο τύπος δεδομένων είναι varchar, char, string κ.λπ.
θέση εκκίνησης Μια προαιρετική παράμετρος. Υποδηλώνει τον τόπο όπου το extracθα ξεκινήσει η διαδικασία της συμβολοσειράς. Εάν παραλείψετε αυτήν την παράμετρο, το extracΗ σηµείωση ξεκινά από τη θέση 1, η οποία είναι ο πρώτος χαρακτήρας στη συµβολοσειρά.
μήκος Μια προαιρετική παράμετρος. Υποδηλώνει τον αριθμό των χαρακτήρων που θα εκτυπωθούν.tracαπό τη συμβολοσειρά. Εάν παραλείψετε αυτήν την παράμετρο, η συνάρτηση extracts από το starting_position μέχρι το τέλος της συμβολοσειράς.

Παραδείγματα

Σε αυτό το παράδειγμα, θέλουμε να πούμεtract τους πρώτους 4 χαρακτήρες της λέξης Guru99:

SELECT substring('Guru99' for 4);

Η εντολή θα επιστρέψει τα εξής:

PostgreSQL Υποστρώματα

Δεν καθορίσαμε την αρχική θέση, επομένως η πρώηνtracη υποσυμβολοσειρά ξεκίνησε στη θέση 1. Τέσσερις χαρακτήρες ήταν extracted για να επιστρέψει το παραπάνω αποτέλεσμα.

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

SELECT substring('Guru99' from 1 for 4);

Η εντολή θα επιστρέψει τα εξής:

PostgreSQL Υποστρώματα

Διευκρινίσαμε ότι ο πρώηνtracΗ εισαγωγή της υποσυμβολοσειράς πρέπει να ξεκινά από τη θέση 1 και 4 χαρακτήρες πρέπει να είναι εκτόςtracξυραίνω χόρτα.

Ας ξεκινήσουμεtract 99 από τη συμβολοσειρά Guru99:

SELECT substring('Guru99' from 5);

Η εντολή θα επιστρέψει τα εξής:

PostgreSQL Υποστρώματα

Καθορίσαμε την αρχική θέση ως 5. Δεδομένου ότι ο αριθμός των χαρακτήρων που θα εκτελεστούνtracΤο ted δεν προσδιορίστηκε, το πρώηνtracη χορδή έφτανε μέχρι το τέλος.

Εδώ είναι ένα άλλο παράδειγμα:

SELECT substring('Guru99' from 5 for 2);

Η εντολή θα επιστρέψει τα εξής:

PostgreSQL Υποστρώματα

Ξεκινήσαμε πρώηνtracθέση στη θέση 5, και 2 χαρακτήρες ήταν εκτόςtracξυραίνω χόρτα.

Εξετάστε τον πίνακα Βιβλίων που δίνεται παρακάτω:

PostgreSQL Πίνακας βιβλίου υποσυμβολοσειράς

Θέλουμε να έχουμε μια γενική ιδέα για το όνομα κάθε βιβλίου. Μπορούμε π.χ.tracμόνο οι πρώτοι 15 χαρακτήρες από τη στήλη ονόματος του πίνακα:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Η εντολή θα επιστρέψει τα εξής:

PostgreSQL Αποτέλεσμα δευτερεύουσας συμβολοσειράς

Τώρα έχουμε μια πρόχειρη ιδέα για το όνομα κάθε βιβλίου.

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

In PostgreSQL, μπορείτε π.χ.tracta substring που ταιριάζει με μια καθορισμένη κανονική έκφραση POSIX. Σε αυτήν την περίπτωση, η συνάρτηση substring χρησιμοποιεί την ακόλουθη σύνταξη:

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;

Η εντολή θα επιστρέψει τα εξής:

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

Η συμβολοσειρά εισόδου μας είναι Η ηλικία σας είναι 22. Στο μοτίβο, αναζητούμε ένα αριθμητικό μοτίβο. Όταν βρεθεί, η συνάρτηση υποσυμβολοσειράς π.χ.tracμόνο δύο χαρακτήρες.

Πώς να αντιστοιχίσετε υποσυμβολοσειρές χρησιμοποιώντας το pgAdmin

Ας δούμε τώρα πώς εκτελούνται αυτές οι ενέργειες χρησιμοποιώντας το pgAdmin. Τα ερωτήματα που δεν χρειάζονται βάση δεδομένων μπορούν να εκτελεστούν απευθείας από το παράθυρο του προγράμματος επεξεργασίας ερωτημάτων. Απλώς κάντε τα εξής:

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

Βήμα 2) Στο pgAdmin, κάντε κλικ στο εικονίδιο του Εργαλείου εξατομικευμένων αναφορών.

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Θα ανοίξει το παράθυρο επεξεργασίας ερωτημάτων.

Βήμα 3) Πληκτρολογήστε το ακόλουθο ερώτημα στο παράθυρο του προγράμματος επεξεργασίας.

SELECT substring('Guru99' for 4);

Βήμα 4) Κάντε κλικ στο εικονίδιο Εκτέλεση για να εκτελέσετε το ερώτημα.

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Βήμα 5) Η εκτέλεση του ερωτήματος ολοκληρώθηκε. Θα πρέπει να επιστρέψει τα εξής:

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Παράδειγμα 2:

SELECT substring('Guru99' from 1 for 4);

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

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Εδώ είναι το επόμενο παράδειγμα:

SELECT substring('Guru99' from 5);

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

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Παράδειγμα 3:

SELECT substring('Guru99' from 5 for 2);

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

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

Τώρα, ας εκτελέσουμε το παράδειγμα χρησιμοποιώντας τον πίνακα Book της βάσης δεδομένων επίδειξης:

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

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

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

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

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

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

Αντιστοίχιση υποσυμβολοσειρών με χρήση του pgAdmin

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

PostgreSQL Αποτέλεσμα δευτερεύουσας συμβολοσειράς

Τώρα έχουμε μια βασική ιδέα για το όνομα κάθε βιβλίου.

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

Για να κάνετε το ίδιο στο pgAdmin, κάντε τα εξής:

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

Βήμα 2) Κάντε κλικ στο εικονίδιο του Εργαλείου εξατομικευμένων αναφορών.

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

Θα ανοίξει το παράθυρο επεξεργασίας ερωτημάτων.

Βήμα 3) Πληκτρολογήστε το ακόλουθο ερώτημα στο παράθυρο του προγράμματος επεξεργασίας.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Βήμα 4) Κάντε κλικ στο εικονίδιο Εκτέλεση για να εκτελέσετε το ερώτημα.

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

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

Αντιστοίχιση υποσυμβολοσειρών με κανονική έκφραση SQL

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

Συχνές Ερωτήσεις

Το SUBSTR είναι ένα μικρότερο ψευδώνυμο του SUBSTRING και επιστρέφει μέρος μιας συμβολοσειράς. Το SUBSTRING υποστηρίζει επίσης τις λέξεις-κλειδιά FROM και FOR του προτύπου SQL, καθώς και κανονικές εκφράσεις POSIX, ενώ το SUBSTR δέχεται μόνο ορίσματα θέσης και μήκους διαχωρισμένα με κόμμα.

PostgreSQL Η ΥΠΟΣΥΜΒΟΛΙΚΗ βασίζεται σε μία τιμή, επομένως ο πρώτος χαρακτήρας βρίσκεται στη θέση 1 και όχι στο 0. Η εισαγωγή μιας αρχικής θέσης 1 επιστρέφει τη συμβολοσειρά από τον πρώτο χαρακτήρα της και μετά.

Όταν το μοτίβο POSIX δεν ταιριάζει με τίποτα, η συνάρτηση SUBSTRING επιστρέφει NULL αντί για μια κενή συμβολοσειρά. Η δοκιμή του αποτελέσματος με IS NULL σάς επιτρέπει να χειρίζεστε γραμμές όπου το αναμενόμενο μοτίβο απουσιάζει.

Χρησιμοποιήστε μια κανονική έκφραση που καταγράφει ό,τι ακολουθεί τον χαρακτήρα. Για παράδειγμα, η συνάρτηση SUBSTRING(email FROM '@(.*)') επιστρέφει όλα τα στοιχεία μετά το σύμβολο @, δίνοντάς σας το τμήμα τομέα κάθε διεύθυνσης ηλεκτρονικού ταχυδρομείου.

Χρησιμοποιήστε τη συνάρτηση SUBSTRING όταν χρειάζεστε το πρώτο κείμενο που ταιριάζει ως απλή τιμή. Επιλέξτε τη συνάρτηση regexp_matches() όταν θέλετε κάθε αντιστοίχιση ή πολλαπλές ομάδες καταγραφής να επιστρέφονται ως πίνακας, καθώς η συνάρτηση SUBSTRING επιστρέφει μόνο την πρώτη αντιστοίχιση.

Οι βοηθοί τεχνητής νοημοσύνης, όπως το GitHub Copilot, μετατρέπουν μια απλή αγγλική περιγραφή σε ένα μοτίβο POSIX, εξηγούν με τι ταιριάζει κάθε διακριτικό και προτείνουν συμβολοσειρές δοκιμής, γεγονός που μειώνει τη διαδικασία δοκιμής και σφάλματος κατά τη δημιουργία υποσυμβολοσειρών.tracερωτήματα σχετικά με τη διαδικασία.

Ναι. Περιγράψτε το μέρος του κειμένου που θέλετε και ο βοηθός AI συντάσσει μια κλήση SUBSTRING με τις σωστές θέσεις ή κανονική έκφραση, την οποία μπορείτε να εκτελέσετε και να βελτιώσετε μέσα στο pgAdmin.

Ναι, η αντιστοίχιση POSIX SUBSTRING κάνει διάκριση πεζών-κεφαλαίων από προεπιλογή. Για αντιστοίχιση ανεξάρτητα από την κεφαλαία-κεφαλαία, μειώστε και τις δύο εισόδους, για παράδειγμα SUBSTRING(lower(name) FROM lower(pattern)), ώστε τα κεφαλαία και τα πεζά γράμματα να αντιμετωπίζονται με τον ίδιο τρόπο.

Συνοψίστε αυτήν την ανάρτηση με: