Χρησιμοποιώντας χαρακτήρες wildcards για αναπάντεχες αντιστοίχιση
Η αντιστοίχιση προτύπων SQL σας επιτρέπει να αναζητήσετε μοτίβα στα δεδομένα, αν δεν γνωρίζετε την ακριβή λέξη ή τη φράση που αναζητάτε. Αυτό το είδος ερωτήματος SQL χρησιμοποιεί χαρακτήρες μπαλαντέρ για να ταιριάζει με ένα μοτίβο, παρά να τον προσδιορίζει επακριβώς. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το μπαλαντέρ "C%" για να ταιριάζει σε οποιαδήποτε συμβολοσειρά που ξεκινά με κεφαλαίο C.
Χρησιμοποιώντας τον Operator LIKE
Για να χρησιμοποιήσετε μια έκφραση μπαλαντέρ σε ένα ερώτημα SQL, χρησιμοποιήστε τον τελεστή LIKE σε μια ρήτρα WHERE και επισυνάψτε το μοτίβο μέσα σε μοναδικά εισαγωγικά.
Χρησιμοποιώντας το% Wildcard για να εκτελέσετε μια απλή αναζήτηση
Για να αναζητήσετε οποιονδήποτε υπάλληλο στη βάση δεδομένων σας με ένα επώνυμο που αρχίζει με το γράμμα C, χρησιμοποιήστε την ακόλουθη δήλωση Transact-SQL:
SELECT * FROM εργαζόμενοι WHERE last_name LIKE 'C%'Παραλείποντας μοτίβα χρησιμοποιώντας τη λέξη-κλειδί NOT
Χρησιμοποιήστε τη λέξη-κλειδί NOT για να επιλέξετε εγγραφές που δεν ταιριάζουν με το πρότυπο. Για παράδειγμα, αυτό το ερώτημα επιστρέφει όλες τις εγγραφές των οποίων το τελευταίο όνομα δεν ξεκινά με το C:
SELECT * FROM υπαλλήλους WHERE last_name NOT LIKE 'C%'Αντιστοίχιση ενός μοτίβου οπουδήποτε Χρησιμοποιώντας το% Wildcard δύο φορές
Χρησιμοποιήστε δύο εμφανίσεις του % wildcard για να ταιριάζει με ένα συγκεκριμένο μοτίβο οπουδήποτε. Αυτό το παράδειγμα επιστρέφει όλες τις εγγραφές που περιέχουν C οπουδήποτε στο τελευταίο όνομα:
SELECT * FROM εργαζόμενοι WHERE last_name LIKE '% C%'Εύρεση μιας αντιστοίχισης μοτίβων σε μια συγκεκριμένη θέση
Χρησιμοποιήστε το wildcard για να επιστρέψετε δεδομένα σε μια συγκεκριμένη τοποθεσία. Το παράδειγμα αυτό ταιριάζει μόνο εάν το C εμφανίζεται στην τρίτη θέση της στήλης του τελευταίου ονόματος:
SELECT * FROM υπαλλήλους WHERE last_name LIKE '_ _C%'Υποστηριζόμενες εκφράσεις μπαλαντέρ σε Transact SQL
Υπάρχουν διάφορες εκφράσεις μπαλαντέρ που υποστηρίζονται από το Transact SQL:
- Το % wildcard αντιστοιχεί σε μηδέν ή περισσότερους χαρακτήρες οποιουδήποτε τύπου και μπορεί να χρησιμοποιηθεί για τον ορισμό μπαλαντέρ τόσο πριν όσο και μετά το μοτίβο. Αν είστε εξοικειωμένοι με την αντιστοίχιση προτύπου DOS, είναι το ισοδύναμο του * wildcard σε αυτή τη σύνταξη.
- Το wildcard αντιστοιχεί ακριβώς σε ένα χαρακτήρα οποιουδήποτε τύπου. Είναι το ισοδύναμο του ; μπαλαντέρ σε αντιστοίχιση προτύπου DOS.
- Καθορίστε μια λίστα χαρακτήρων περικλείοντας τους σε αγκύλες. Για παράδειγμα, το μπαλαντέρ [aeiou] ταιριάζει με οποιοδήποτε φωνήεν.
- Καθορίστε μια σειρά χαρακτήρων περικλείοντας το εύρος σε αγκύλες. Για παράδειγμα, το μπαλαντέρ [am] αντιστοιχεί σε κάθε γράμμα στο πρώτο μισό του αλφαβήτου.
- Απορρίψτε μια σειρά χαρακτήρων συμπεριλαμβάνοντας τον χαρακτήρα καρατιού αμέσως μέσα στο ανοιχτό τετράγωνο στήριγμα. Για παράδειγμα, το [^ aeiou] ταιριάζει με οποιοδήποτε χαρακτήρα χωρίς φωνήεν, ενώ το [^ am] αντιστοιχεί σε οποιονδήποτε χαρακτήρα που δεν βρίσκεται στο πρώτο μισό του αλφαβήτου.
Συνδυασμός χαρακτήρων για σύνθετα μοτίβα
Συνδυάστε αυτά τα μπαλαντέρ σε σύνθετα μοτίβα για να εκτελέσετε πιο προηγμένα ερωτήματα. Για παράδειγμα, υποθέστε ότι πρέπει να δημιουργήσετε μια λίστα με όλους τους υπαλλήλους σας που έχουν ονόματα που αρχίζουν με ένα γράμμα από το πρώτο μισό του αλφαβήτου, αλλά δεν τελειώνουν με ένα φωνήεν. Θα μπορούσατε να χρησιμοποιήσετε το ακόλουθο ερώτημα:
SELECT * FROM εργαζόμενοι WHERE last_name LIKE '[am]% [^ aeiou]'Ομοίως, θα μπορούσατε να δημιουργήσετε μια λίστα με όλους τους υπαλλήλους με τα επώνυμα που αποτελούνται από ακριβώς τέσσερις χαρακτήρες χρησιμοποιώντας τέσσερις εμφανίσεις του μοτίβου _ :
SELECT * FROM υπαλλήλους WHERE last_name LIKE '____'Όπως μπορείτε να διαπιστώσετε, η χρήση των δυνατοτήτων αντιστοίχισης προτύπων SQL προσφέρει στους χρήστες της βάσης δεδομένων τη δυνατότητα να υπερβούν τα απλά ερωτήματα κειμένων και να εκτελούν προηγμένες λειτουργίες αναζήτησης.