Rozdział 10. ♦ Podstawy SQL 303
SELECT * FROM Osoba WHERE Id >= 3 AND Id <- 6: lub
SELECT * FROM Osoba WHERE Id BETWEEN 3 AND 6:
Efekt działania takiego zapytania został przedstawiony na rysunku 10.12.
Rysunek 10.12.
Efekt działania zapytania pobierającego dane z określonego przedziału
sobą uhere id bot
Krzysztof I Nowicki
! RokJJ rodzenia I Miejsce_Urodzeni
Jeśli chcielibyśmy, aby w wyniku zostały uwzględnione wartości z pewnego zbioru, a nie przedziału, można użyć zarówno serii instrukcji warunkowych, połączonych operatorami logicznymi, jak i operatora IN. Działanie będzie takie samo, jednak ta druga możliwość pozwala na prostszy i dużo czytelniejszy zapis instrukcji. Jeśli zatem chcemy otrzymać dane osób o identyfikatorach 3, 5 i 7, możemy zastosować instrukcję:
SELECT * FROM Osoba WHERE Id=3 OR Id=5 OR id=7: lub też instrukcję:
SELECT * FROM Osoba WHERE Id INO. 5. 7):
Efekt działania (w obu przypadkach identyczny) został przedstawiony na rysunku 10.13.
Rysunek 10.13.
Wykorzystanie operatora IN do pobran ia określonych wierszy
nysql> select * |
from osoba uhere id in<3. 5, 7>; | |||
! Id |
Inie |
Nazwisko |
Rok_Urodzenia |
Hiejsce_Urodzenia |
1 3 1 5 1 7 |
||! |
Kowalski Malinowski Adamczyk |
1986 1989 1971 |
Nidzica Kielce Kielce |
3 rows in set <0.00 sec)
Odwrotnością IN jest NOT IN, które pozwala na pobranie danych, które nie należą do wymienionego zbioru. Również i w tym wypadku możliwe jest użycie ekwiwalentu w postaci serii instrukcji warunkowych połączonym operatorami logicznymi. Jeśli zatem chcemy wyświetlić dane osób o identyfikatorach różnych od 1, 3, 5, 7 i 9, możemy skorzystać z instrukcji:
SELECT * FROM Osoba WHERE Id <> 1 AND Id o 3 AND Id o 5 AND Id o 7 AND Id o 9:
SELECT * FROM Osoba WHERE Id NOT IN(1. 3. 5. 7. 9):
Efekt ich działania został zaprezentowany na rysunku 10.14.
Funkcja LIKE, którą można traktować jako operator działający na ciągach znaków, pozwoli nam na pobranie z tabeli wierszy, których wybrane pola pasują do zdefiniowanego przez nas wzorca. Przykładowo, gdybyśmy chcieli poznać dane wszystkich osób, których imiona zaczynają się od ciągu Ka, powinniśmy zastosować instrukcję:
SELECT * FROM Osoba WHERE Imię LIKE 'Ka*':