Folosind Wildcards pentru potrivirea inexactă
Potrivirea tiparelor SQL vă permite să căutați modele în date, dacă nu cunoașteți exact cuvântul sau fraza pe care o căutați. Acest tip de interogare SQL folosește metacaractere potrivite pentru a se potrivi cu un model, mai degrabă decât să-l precizeze exact. De exemplu, puteți utiliza macheta "C%" pentru a se potrivi oricărui șir care începe cu un capital C.
Utilizând Operatorul LIKE
Pentru a utiliza o expresie wildcard într-o interogare SQL, utilizați operatorul LIKE într-o clauză WHERE și introduceți modelul în ghilimele simple.
Utilizarea% Wildcard pentru a efectua o căutare simplă
Pentru a căuta orice angajat din baza de date cu un nume de familie care începe cu litera C, utilizați următoarea instrucțiune Transact-SQL:
SELECT * FROM angajați WHERE last_name LIKE 'C%'Omitting Patterns Folosind NOT Keyword
Utilizați cuvântul cheie NOT pentru a selecta înregistrări care nu se potrivesc cu modelul. De exemplu, această interogare returnează toate înregistrările ale căror ultimul nume nu începe cu C:
SELECT * FROM angajați WHERE ultim_name NOT LIKE 'C%'Cum se potrivește un model oriunde folosind% Wildcard de două ori
Utilizați două exemple de % wildcard pentru a se potrivi cu un anumit tip oriunde. Acest exemplu returnează toate înregistrările care conțin un C oriunde în ultimul nume:
SELECT * FROM angajați WHERE ultim_name LIKE '% C%'Găsirea unei potriviri de model la o anumită poziție
Utilizați opțiunea _ wildcard pentru a returna datele dintr-o anumită locație. Acest exemplu se potrivește numai dacă C apare în a treia poziție a coloanei cu numele de ultimă generație:
SELECT * FROM angajați WHERE ultim_name LIKE '_ _C%'Expresiile wildcard acceptate în SQL Transact
Există mai multe expresii cu metacaractere acceptate de SQL Transact:
- Masa % wildcard se potrivește cu zero sau mai multe caractere de orice tip și poate fi utilizată pentru a defini metacaracte atât înainte, cât și după model. Dacă sunteți familiarizați cu potrivirea modelului DOS, acesta este echivalentul wildcard-ului din acea sintaxă.
- Cartea wildcard se potrivește exact unui caracter de orice tip. Este echivalentul lui ? wildcard în potrivirea modelului DOS.
- Specificați o listă de caractere introducându-le în paranteze pătrate. De exemplu, wildcard [aeiou] se potrivește cu orice vocală.
- Specificați o serie de caractere prin includerea intervalului în paranteze pătrate. De exemplu, wildcard [am] se potrivește cu orice literă din prima jumătate a alfabetului.
- Negarea unei serii de caractere prin includerea caracterelor în interiorul brațului deschis. De exemplu, [^ aeiou] se potrivește cu orice caracter non-vocal în timp ce [^ am] se potrivește cu orice caracter care nu este în prima jumătate a alfabetului.
Combinarea caracterelor pentru modele complexe
Combinați aceste metacaractere în modele complexe pentru a efectua interogări mai avansate. De exemplu, să presupunem că trebuie să construiți o listă a tuturor angajaților care au nume care încep cu o literă din prima jumătate a alfabetului, dar nu se termină cu o vocală. Ați putea utiliza următoarea interogare:
SELECT * FROM angajați WHERE ultim_name LIKE '[am]% [^ aeiou]'În mod similar, ați putea construi o listă a tuturor angajaților cu nume de familie care constau din exact patru caractere folosind patru instanțe ale modelului _ :
SELECT * FROM angajați WHERE last_name LIKE '____'După cum puteți spune, folosirea capabilităților de potrivire a tiparelor SQL oferă utilizatorilor de baze de date posibilitatea de a merge dincolo de întrebările simple de text și de a efectua operații de căutare avansată.