SELECT, FROM, WHERE, LIKE – Kurs języka SQL (polecenie SELECT cz. 3)
Jakie wyniki ma nam zwrócić zapytanie SQL możemy również określić przy pomocy klauzuli LIKE
lub przeczenia NOT LIKE
. Składnia takiego polecenia jest następująca:
LIKE
– gdzie wartość z kolumny nazwa_kolumny spełnia warunek określony przez wyrażenie
SELECT * FROM nazwa_tabeli WHERE nazwa_kolumny LIKE wyrażenie;
NOT LIKE
– gdzie wartość z kolumny nazwa_kolumny nie spełnia warunku określonego przez wyrażenie
SELECT * FROM nazwa_tabeli WHERE nazwa_kolumny NOT LIKE wyrażenie;
Aby lepiej zrozumieć zastosowanie przejdźmy do przykładów. Oprzemy je na znanej nam już tabeli pracownicy
Przykład 1:
Dla tabeli pracownicy możemy wyświetlić wszystkie rekordy pracowników których nazwiska zaczynają się na St
. Polecenie będzie miało następującą postać:
SELECT * FROM pracownicy WHERE nazwisko LIKE 'St%';
W wyniku zapytania otrzymany:
Przykład 2:
Chcemy wyświetlić pracowników których stanowisko kończy się frazą ny
możemy także skorzystać z operatora LIKE
.
SELECT * FROM pracownicy WHERE stanowisko LIKE '%ny';
W wyniku otrzymamy:
Przykład 3:
Tym razem wyświetlimy listę pracowników których druga litera imienia to a
także jest to możliwe:
SELECT * FROM pracownicy WHERE imie LIKE '_a%';
Wynik zapytania SQL:
Przykład 4:
W powyższych przykładach zastosowałem parametr LIKE
. Parametr NOT LIKE
jest przeczeniem i zastosowanie jego jest podobne do samego LIKE
. Tym razem chcemy wyświetlić listę pracowników, których pierwszą ani ostanią literą nie jest litera A/a
.
SELECT * FROM pracownicy WHERE imie NOT LIKE 'A%a';
Wynik zapytania SQL:
Poniżej zamieściłem tabelę ze wszelkimi możliwymi znakami specjalnymi, wraz ze znaczeniem i przykładem.
Znak specjalny: | Znaczenie: | Przykład: |
_ | Dowolny pojedynczy znak | LIKE ‘_c_’ – oznacza wszystkie trzy literowe wyrazy, których środkowa litera to c |
% | Dowolny ciąg znaków o dowolnej długości, także zerowej | LIKE ‘c%’ – oznacza wszystkie wyrazy o dowolnej długości rozpoczynające się od litery c |
[] | Dowolny ciąg znaków z podanego zakresu | LIKE ‘[a-g]%’ – oznacza wszystkie wyrazy o dowolnej długości których pierwsza litera należy do zakresu a–g. |
[^] | Dowolny ciąg znaków nie pasujący do zakresu | LIKE ‘[^a-g]%’ – oznacza wszystkie wyrazy o dowolnej długości których pierwsza litera jest poza zakresem a–g. |
[]
oraz [^]
dotyczą MS SQL
.