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

tabela 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 znakLIKE ‘_c_’ – oznacza wszystkie trzy literowe wyrazy, których środkowa litera to c
%Dowolny ciąg znaków o dowolnej długości, także zerowejLIKE ‘c%’ – oznacza wszystkie wyrazy o dowolnej długości rozpoczynające się od litery c
[]Dowolny ciąg znaków z podanego zakresuLIKE ‘[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 zakresuLIKE ‘[^a-g]%’ – oznacza wszystkie wyrazy o dowolnej długości których pierwsza litera jest poza zakresem a–g.
Uwaga: Dwa ostatnie znaki specjalne [] oraz [^] dotyczą MS SQL.