SQL symbole wieloznaczne

SQL symbole wieloznaczne


    


DEFINICJA
W zapytaniach SQL symbole wieloznaczne reprezentują dowolny ciąg znaków włączając zero. Symbole te mogą być przedrostkiem (znajdować się przed wartością), wrostkiem (znajdować się w środku) lub przyrostkiem (znajdować się za wartością), co pokażą poniższe przykłady. Z pomocą symboli wieloznacznych budujemy wzorzec który później możemy porównywać z innymi wartościami.

Symbole wieloznaczne wykorzystywane w SQL
%  – reprezentacja ciągu znaków (w tym przypadku ciąg znaków może być także zerowy)
_  – reprezentacja jednego znaku
[   ] – reprezentacja zestawów lub zakresów znaków
[^  ] – odwrotność [], czyli do wzorca pasuje wszytko to co NIE jest podane w nawiasach kwadratowych


Przykład zastosowania symbolu % (baza Northwind)
Wyświetl pracowników (Nazwiski i Imię, Miasto, Adres) mieszkających w mieście zaczynającym się na L.

SELECT
    LastName AS Nazwisko
    ,FirstName AS Imię
    ,City AS Miasto
    ,Address AS Adres
FROM    
    Employees
WHERE
    City like 'L%'    

Mamy tutaj do czynienia z przedrostkiem. Nasz wzorzec będzie wyglądał następująco L% czyli wyrażenie zaczynające się na literę L a później może wystąpić dowolny ciąg znaków (również zerowy).


Kolejny przykład zastosowania symbolu % (baza Northwind)

Wyświetl pracowników (Nazwiski i Imię, Miasto, Adres) mieszkających w mieście, gdzie w nazwie tego miasta występuje "ond".

SELECT
    LastName AS Nazwisko
    ,FirstName AS Imię
    ,City AS Miasto
    ,Address AS Adres
FROM    
    Employees
WHERE
    City like '%ond%'    

Tutaj mamy wrostek czyli nasz wzorzec będzie wyglądał tak %ond%. To tak jakbyśmy powiedzieli: pokaż wszystkie ciągi znaków które składają się z dowolnego ciągu znaków na początku, gdzieś w środku mają ciąg znaków 'ond' i na końcu mają także dowolny ciąg znaków.


Przykład zastosowania symbolu [] (baza Northwind)
Wyświetl pracowników (Nazwiski i Imię, Miasto, Adres) mieszkających w mieście zaczynającym się na "a" "k" lub "s".

SELECT
    LastName AS Nazwisko
    ,FirstName AS Imię
    ,City AS Miasto
    ,Address AS Adres
FROM    
    Employees
WHERE
    City like '[aks]%'

Jakbyśmy chcieli np szukać nazwy miasta zaczynających się na a,b lub c ponieważ litery te występują po sobie moglibyśmy użyć zakresu (żeby nie wypisywać po kolei wszystkich znaków z zakresu) i wtedy nasz wzorzec wyglądałby tak [a-c]%


Przykład zastosowania symbolu [^] (baza Northwind)
Wyświetl pracowników (Nazwiski i Imię, Miasto, Adres) mieszkających w mieście NIE zaczynającym się na żadną literę z zakresu od "a" do "l".

SELECT
    LastName AS Nazwisko
    ,FirstName AS Imię
    ,City AS Miasto
    ,Address AS Adres
FROM    
    Employees
WHERE
    City like '[^a-l]%'