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]%'