Potrivirea modelelor în interogările SQL cu metacaracterele

click fraud protection

Potrivirea modelelor SQL vă permite să căutați modele în date dacă nu știți exact cuvântul sau expresia pe care o căutați. Acest tip de SQL interogarea folosește caractere wildcard pentru a se potrivi cu un model, mai degrabă decât să îl specificați exact. De exemplu, puteți utiliza caracterul wildcard „C%” pentru a se potrivi cu orice șir care începe cu o literă C.

Lupă
Kate Ter Haar / Flickr / CC de 2.0

Folosind operatorul LIKE

Pentru a utiliza o expresie wildcard într-o interogare SQL, utilizați operatorul LIKE într-o clauză WHERE și includeți modelul între ghilimele unice.

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:

SELECTAȚI *
DE LA angajați
UNDE prenume ca „C%”

Omiterea modelelor folosind cuvântul cheie NU

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 al căror nume apare ultima dată nu începe cu C:

instagram viewer
SELECTAȚI *
DE LA angajați
UNDE prenumele nu place „C%”

Potrivirea unui model oriunde folosind% Wildcard de două ori

Utilizați două instanțe ale % wildcard pentru a se potrivi cu un anumit model oriunde. Acest exemplu returnează toate înregistrările care conțin un C oriunde în numele de familie:

SELECTAȚI *
DE LA angajați
UNDE prenume ca „% C%”

Găsirea unei potriviri de tipare la o poziție specifică

Folosește _ wildcard pentru a returna date la o anumită locație. Acest exemplu se potrivește numai dacă C apare la a treia poziție a coloanei de nume:

SELECTAȚI *
DE LA angajați
UNDE last_name LIKE '_ _C%'

Expresii comodine acceptate în Transact SQL

Există mai multe expresii comodine acceptate de Transact SQL:

  • % wildcard-ul se potrivește cu zero sau mai multe caractere de orice tip și poate fi folosit pentru a defini metacaracterele înainte și după model. Dacă sunteți familiarizat cu potrivirea modelului DOS, este echivalentul * wildcard-ului din acea sintaxă.
  • _ wildcard se potrivește exact cu un caracter de orice tip. Este echivalentul ? wildcard în potrivirea modelului DOS.
  • Specificați o listă de caractere încadrându-le între paranteze drepte. De exemplu, wildcard-ul [aeiou] se potrivește cu orice vocală.
  • Specificați o gamă de caractere încadrând intervalul între paranteze drepte. De exemplu, wildcard-ul [a.m] se potrivește cu orice literă din prima jumătate a alfabetului.
  • Anulați o gamă de caractere, incluzând caracterul carat imediat în interiorul parantezei pătrate de deschidere. De exemplu, [^ aeiou] se potrivește cu orice caracter non-vocal în timp ce [^ a-m] se potrivește cu orice caracter care nu se află în prima jumătate a alfabetului.

Combinarea comodinelor 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 dvs. care au nume care încep cu o literă din prima jumătate a alfabetului, dar au nu se termină cu o vocală. Puteți utiliza următoarea interogare:

SELECTAȚI *
DE LA angajați
UNDE last_name LIKE '[a-m]% [^ aeiou]'

În mod similar, puteți construi o listă a tuturor angajaților cu nume de familie constând din exact patru caractere utilizând patru instanțe ale _ model:

SELECTAȚI *
DE LA angajați
UNDE prenume ca „____”

După cum vă puteți da seama, utilizarea capabilităților de potrivire a modelelor SQL oferă utilizatorilor bazei de date posibilitatea de a trece dincolo de interogările simple de text și de a efectua operațiuni avansate de căutare.

instagram story viewer