Warunki rozbudowane - operacja SELECT.. WHERE
W kursie początkującym poznaliśmy już zapytanie SELECT oraz jego rozszerzenie o klauzulę WHERE. Tutaj, postaramy się rozszerzyć naszą wiedzę o inne operatory porównania używane w tej klauzuli.Operatory AND, OR, NOT
Dzięki nim możemy stworzyć złożone warunki logiczne. Są to odpowiedniki matematycznej koniunkcji, alternatywy i negacji.- AND - oba warunki muszą być spełnione
- OR - wystarczy, że jeden będzie spełniony
- NOT - negacja warunku
SELECT kolumna,kolumna,.. FROM tabela
WHERE NOT kolumna=wartość AND kolumna=wartość OR kolumna=wartość
Możliwe jest również używanie nawiasów w warunkach. Operatory w nawiasach są wykonywane jako pierwsze
a następnie ich wynik jest przekazywany po za nawias.WHERE NOT kolumna=wartość AND kolumna=wartość OR kolumna=wartość
PRZYKŁAD
Wybieramy dane użytkownika który ma na imię Katarzyna i mieszka w Lublinie
Tabela Customer :
zapytanie : SELECT id,name,city,date FROM customer WHERE name='Adam' AND city='Lublin'
Wynik zapytania :
ĆWICZENIE
Wybierz wszystkie dane produktów z tabeli Product, których cena jest większa od 25 lub liczba sztuk jest nie mniejsza niż 5
Tabela Product :
Wpisz zapytanie do bazy :
Zobacz jak powinno wyglądać zapytanie
SELECT id,name,price,amount,date FROM product WHERE price>25 OR amount >=5
Operator LIKE
Umożliwia przeszukiwanie danych tekstowych na podstawie wzorca podanego w klauzuli warunkowej. Może być to zarówno dokładny ciąg poszukiwanych znaków jak i wyrażenie stworzone przy pomocy następujących symboli:- Symbol % zastępuje dowolny ciąg znaków
- Symbol _ zastępuje dowolny pojedynczy znak
SELECT kolumna,kolumna,.. FROM tabela
WHERE kolumna LIKE 'wyrażenie'
WHERE kolumna LIKE 'wyrażenie'
PRZYKŁAD
Wybieramy dane użytkownika których imię rozpoczyna się literą M
Tabela Customer :
zapytanie : SELECT id,name,city,date FROM customer WHERE name LIKE 'M%'
Wynik zapytania :
ĆWICZENIE
Wybierz id, nazwę i cenę produktów z tabeli Product które zawierają w nazwie literę "a" i których cena jest liczbą niecałkowitą
Tabela Product :
Wpisz zapytanie do bazy :
Zobacz jak powinno wyglądać zapytanie
SELECT id,name,price FROM product WHERE name LIKE '%a%' AND price LIKE '%.%'
Operator IN
Operator IN sprawdza czy wartości z kolumny znajdują się w zbiorze podanym zaraz bo klauzuli IN.SELECT kolumna,kolumna,.. FROM tabela
WHERE kolumna IN (element zb.,element zb.,..)
WHERE kolumna IN (element zb.,element zb.,..)
PRZYKŁAD
Wybieramy nazwy i ceny produktów których cena wynosi 45 lub 10 lub 25
Tabela Product :
zapytanie : SELECT name,price FROM product WHERE price IN (45,10,25)
Wynik zapytania :
ĆWICZENIE
Wybierz nazwę, cenę i ilość produktów z tabeli Product, których ilość to 3,4,5 lub 6
Tabela Product :
Wpisz zapytanie do bazy :
Zobacz jak powinno wyglądać zapytanie
SELECT name,price,amount FROM product WHERE amount IN (3,4,5,6)
Operator BETWEEN
Operator BETWEEN sprawdza czy wartości z kolumny znajdują się w przedziale podanym zaraz po klauzuli BETWEEN.SELECT kolumna,kolumna,.. FROM tabela
WHERE kolumna BEETWEEN wartość1 AND wartość2
WHERE kolumna BEETWEEN wartość1 AND wartość2
PRZYKŁAD
Wybieramy nazwę i cenę produktów których cena należy do przedziału 40 do 60
Tabela Product :
zapytanie : SELECT name,price FROM product WHERE price BETWEEN 40 AND 60
Wynik zapytania :
Operator IS NULL
Umożliwia wybranie rekordów ze względu na nieprzypisaną wartość w jednej z jego kolumn.SELECT kolumna,kolumna,.. FROM tabela WHERE kolumna IS NULL