La corrispondenza dei modelli SQL consente di cercare modelli nei dati se non si conosce la parola o la frase esatta che si sta cercando. Questo tipo di SQL query utilizza caratteri jolly per abbinare un modello, piuttosto che specificarlo esattamente. Ad esempio, puoi utilizzare il carattere jolly "C%" per abbinare qualsiasi stringa che inizia con una C maiuscola.
Utilizzo dell'operatore LIKE
Per utilizzare un'espressione con caratteri jolly in una query SQL, utilizzare l'operatore LIKE in una clausola WHERE e racchiudere il modello tra virgolette singole.
Utilizzo del carattere jolly % per eseguire una ricerca semplice
Per cercare qualsiasi dipendente nel database con un cognome che inizia con la lettera C, utilizzare la seguente istruzione Transact-SQL:
SELEZIONARE *
DA dipendenti
WHERE cognome LIKE 'C%'
Omissione di modelli utilizzando la parola chiave NOT
Usa la parola chiave NOT per selezionare i record che non corrispondono allo schema. Ad esempio, questa query restituisce tutti i record il cui nome è uguale per ultimo non inizia con C:
SELEZIONARE *
DA dipendenti
WHERE cognome NON MI PIACE 'C%'
Far corrispondere un modello ovunque utilizzando il carattere jolly % due volte
Usa due istanze di % carattere jolly per abbinare un particolare modello ovunque. Questo esempio restituisce tutti i record che contengono una C in qualsiasi punto del cognome:
SELEZIONARE *
DA dipendenti
WHERE cognome LIKE '%C%'
Trovare un pattern match in una posizione specifica
Usa il _ carattere jolly per restituire i dati in una posizione specifica. Questo esempio corrisponde solo se C si trova nella terza posizione della colonna del cognome:
SELEZIONARE *
DA dipendenti
WHERE cognome LIKE '_ _C%'
Espressioni jolly supportate in Transact SQL
Esistono diverse espressioni con caratteri jolly supportate da Transact SQL:
- Il % il carattere jolly corrisponde a zero o più caratteri di qualsiasi tipo e può essere utilizzato per definire caratteri jolly sia prima che dopo il modello. Se hai familiarità con il pattern matching DOS, è l'equivalente del carattere jolly * in quella sintassi.
- Il _ il carattere jolly corrisponde esattamente a un carattere di qualsiasi tipo. È l'equivalente di ? carattere jolly nella corrispondenza del modello DOS.
- Specificare un elenco di caratteri racchiudendoli tra parentesi quadre. Ad esempio, il carattere jolly [aeio] corrisponde a qualsiasi vocale.
- Specificare un intervallo di caratteri racchiudendo l'intervallo tra parentesi quadre. Ad esempio, il carattere jolly [a-m] corrisponde a qualsiasi lettera della prima metà dell'alfabeto.
- Annulla un intervallo di caratteri includendo il carattere carato immediatamente all'interno della parentesi quadra di apertura. Per esempio, [^aiou] corrisponde a qualsiasi carattere non vocale while [^a-m] corrisponde a qualsiasi carattere non nella prima metà dell'alfabeto.
Combinazione di caratteri jolly per modelli complessi
Combina questi caratteri jolly in modelli complessi per eseguire query più avanzate. Ad esempio, supponi di dover creare un elenco di tutti i tuoi dipendenti che hanno nomi che iniziano con una lettera della prima metà dell'alfabeto ma non non termina con una vocale. Potresti usare la seguente query:
SELEZIONARE *
DA dipendenti
WHERE cognome LIKE '[a-m]%[^aeiou]'
Allo stesso modo, puoi costruire un elenco di tutti i dipendenti con cognomi composti esattamente da quattro caratteri utilizzando quattro istanze di _ modello:
SELEZIONARE *
DA dipendenti
WHERE cognome LIKE '____'
Come si può vedere, l'uso delle funzionalità di corrispondenza dei modelli SQL offre agli utenti del database la possibilità di andare oltre le semplici query di testo ed eseguire operazioni di ricerca avanzate.