Oracle LIKE

Oracle Like



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

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







Σε αυτό το σεμινάριο, θα συναντήσετε τον τελεστή LIKE στην Oracle για να εκτελέσετε ερωτήματα αντιστοίχισης προτύπων.



Oracle LIKE Operator

Ο τελεστής LIKE στο Oracle σάς επιτρέπει να αναζητήσετε ένα συγκεκριμένο μοτίβο σε μια δεδομένη στήλη. Για παράδειγμα, μπορείτε να το χρησιμοποιήσετε για να βρείτε όλες τις σειρές όπου το όνομα ενός πελάτη ξεκινά με το μοτίβο 'Ja'.



Συχνά θα βρείτε αυτόν τον τελεστή να χρησιμοποιείται σε συνδυασμό με άλλους όρους SQL, όπως ο όρος WHERE, για να φιλτράρετε τα αποτελέσματά μας με βάση ένα συγκεκριμένο μοτίβο.





Μπορούμε να εκφράσουμε τη σύνταξη του τελεστή LIKE σε SQL όπως φαίνεται παρακάτω:

έκφραση ΣΑΝ μοτίβο [ ΔΙΑΦΥΓΗ 'escape_character' ]



  1. Η παράμετρος έκφρασης καθορίζει τη στήλη που θέλετε να αναζητήσετε.
  2. Η παράμετρος μοτίβο καθορίζει το συγκεκριμένο μοτίβο που θέλετε να αναζητήσετε. Το καθορισμένο μοτίβο μπορεί να περιέχει χαρακτήρες μπαλαντέρ όπως % και _ για να ταιριάζει με οποιονδήποτε αριθμό χαρακτήρων ή έναν μεμονωμένο χαρακτήρα, αντίστοιχα.
  3. Μπορούμε επίσης να συμπεριλάβουμε τον όρο ESCAPE για να καθορίσουμε έναν χαρακτήρα διαφυγής που χρησιμοποιείται για την αναζήτηση των πραγματικών χαρακτήρων μπαλαντέρ.

Παραδείγματα χειριστή Oracle LIKE

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

Ας υποθέσουμε ότι έχουμε έναν πίνακα που περιέχει πληροφορίες πελατών όπως φαίνεται παρακάτω:

Παράδειγμα 1 – Χρήση του % χαρακτήρων μπαλαντέρ

Μπορούμε να χρησιμοποιήσουμε τους % χαρακτήρες μπαλαντέρ για να ταιριάξουμε οποιεσδήποτε συμβολοσειρές με μηδέν ή περισσότερους χαρακτήρες. Για παράδειγμα, μπορούμε να βρούμε όλες τις εγγραφές σε έναν πίνακα που περιέχει το Όνομα «Θα%».

Πάρτε τον πίνακα των εργαζομένων που φαίνεται παρακάτω:

επιλέγω όνομα, επώνυμο, μισθός
από ΕΡΓΑΖΟΜΕΝΟΥΣ
όπου αρέσει στους FIRST_NAME 'Θα%'
παραγγελία κατά όνομα

Το προηγούμενο ερώτημα επιλέγει τις στήλες first_name, last_name και μισθό από τον πίνακα των υπαλλήλων και ταξινομεί τις τιμές που προκύπτουν κατά τη στήλη first_name.

Συνδυάζουμε επίσης μια ρήτρα όπου σε συνδυασμό με έναν τελεστή LIKE με τους χαρακτήρες μπαλαντέρ % για να ανακτήσουμε μόνο τις σειρές όπου το πρώτο όνομα αρχίζει με 'Θα'.

Αυτό θα πρέπει να επιστρέψει τις σειρές ως:

Μπορούμε επίσης να χρησιμοποιήσουμε τον χαρακτήρα μπαλαντέρ % για να ανακτήσουμε τις σειρές που τελειώνουν σε ένα συγκεκριμένο μοτίβο.

Ένα παράδειγμα φαίνεται παρακάτω:

επιλέγω όνομα, επώνυμο, μισθός
από ΕΡΓΑΖΟΜΕΝΟΥΣ
όπου αρέσει στους FIRST_NAME '%είναι'
παραγγελία κατά όνομα

Σε αυτήν την περίπτωση, το προηγούμενο ερώτημα θα πρέπει να επιστρέψει όλες τις σειρές όπου το πρώτο όνομα τελειώνει σε «er». Ένα παράδειγμα προκύπτουσας τιμής φαίνεται παρακάτω:

Ο τελεστής LIKE της βάσης δεδομένων Oracle έχει διάκριση πεζών-κεφαλαίων από προεπιλογή, επομένως είναι απαραίτητο να το έχετε υπόψη κατά την αναζήτηση συγκεκριμένων μοτίβων. Μπορείτε να χρησιμοποιήσετε άλλες συναρτήσεις, όπως κάτω και άνω, για να αναιρέσετε αυτήν τη συμπεριφορά.

Παράδειγμα 2 – Χρήση της ρήτρας διαφυγής

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

επιλέγω όνομα, επίθετο, μισθός, προμήθεια_τμχ
από ΕΡΓΑΖΟΜΕΝΟΥΣ
όπου επιτροπή_pct αρέσει 'είκοσι\%' διαφυγή '\' ;

Το προηγούμενο ερώτημα επιλέγει τις στήλες first_name, last_name, μισθός και επιτροπή_pct από τον πίνακα ΕΡΓΑΖΟΜΕΝΟΙ. Ο όρος WHERE χρησιμοποιεί τον τελεστή LIKE με τον όρο ESCAPE για να ανακτήσει τις εγγραφές όπου η στήλη Commission_pct περιέχει τη συμβολοσειρά '20%' (με κυριολεκτικό χαρακτήρα % και όχι μπαλαντέρ).

Σε αυτήν την περίπτωση, διαφεύγουμε από τον χαρακτήρα % με ανάστροφη κάθετο (\) κατά την αναζήτηση της συμβολοσειράς 20%. Αυτό επιτρέπει στον τελεστή LIKE να αναζητήσει την ακριβή συμβολοσειρά «20%» αντί να αντιμετωπίζει τον χαρακτήρα % ως μπαλαντέρ.

Αυτό το ερώτημα θα επέστρεφε όλες τις σειρές από τον πίνακα EMPLOYEES όπου η στήλη Commission_pct περιέχει την ακριβή συμβολοσειρά '20%', μαζί με τις στήλες name, last_name και μισθό για αυτές τις σειρές.

συμπέρασμα

Σε αυτήν την ανάρτηση, μάθατε πώς να χρησιμοποιείτε τον τελεστή LIKE στις βάσεις δεδομένων της Oracle για να αναζητήσετε συγκεκριμένα μοτίβα σε έναν πίνακα. Παρέχονται πολλά παραδείγματα προς επισήμανση χρησιμοποιώντας χαρακτήρες μπαλαντέρ και τον όρο ESCAPE.