Bazy danych są istotnym elementem budulcowym nowoczesnych aplikacji. Jednak bazy danych przechowują ogromną ilość danych. Dlatego potrzebujemy sposobów na odfiltrowanie danych i pobranie tylko niezbędnych rekordów.
Jedną z najbardziej rozpowszechnionych metod filtrowania danych SQL jest użycie klauzuli WHERE. Klauzula WHERE w SQL pozwala nam filtrować rekordy na podstawie zadanego warunku. Ta klauzula może określać jeden lub więcej warunków, które pozwalają nam filtrować rekordy zwracane przez instrukcję SELECT.
W tym samouczku opisano, jak pracować z klauzulą WHERE i określać wiele warunków w jednej klauzuli, co pozwala na bardziej kontrolowane i szczegółowe filtrowanie danych.
Podstawy klauzul SQL WHERE
Zacznijmy od podstaw i poznajmy podstawy pracy z klauzulą WHERE w SQL.
Załóżmy, że mamy tabelę zawierającą informacje o kraju i pobieramy tylko kraje o populacji (na km kwadratowy) większej niż 100 i powierzchni większej niż 2 000 000.
Zapytanie możemy uruchomić w następujący sposób:
WYBIERAĆ * Z sample_db.country_informationGDZIE obszar > 2 000 000 ORAZ populacja_na_km_kw > 100 ;
W poprzednim przykładzie używamy klauzuli WHERE i operatora AND do określenia dwóch warunków. Użycie operatora AND mówi SQLowi, że oba warunki MUSZĄ być spełnione, aby rekord znalazł się w zbiorze wyników.
To powinno zwrócić tylko kraje, które spełniają określone kryteria w następujący sposób:
Przyjrzyjmy się innym operatorom, aby określić wiele warunków w klauzuli WHERE.
Operator SQL OR
Operator OR pozwala nam określić wiele warunków w klauzuli WHERE. Mimo to, w przeciwieństwie do operatora AND, który wymaga spełnienia wszystkich warunków, operator OR wymaga spełnienia przynajmniej jednego z warunków.
Na przykład, aby wybrać kraje, których powierzchnia jest większa niż 2 000 000 lub liczba ludności (na km kwadratowy) jest większa niż 100, możemy uruchomić następujące zapytanie:
WYBIERAĆ * Z sample_db.country_informationGDZIE obszar > 2 000 000 LUB populacja_na_km_kw > 100 ;
W takim przypadku zapytanie powinno zwrócić wyniki w następujący sposób:
Operator SQL IN
Możemy również użyć operatora IN, aby określić wiele wartości dla kolumny. Na przykład, aby wybrać kraje, których nazwa zawiera łańcuchy „Stany Zjednoczone” i „Rosja”, możemy uruchomić zapytanie w następujący sposób:
WYBIERAĆ * Z sample_db.country_informationGDZIE kraj W ( 'Stany Zjednoczone' , 'Rosja' ) ;
Wynik:
Operator NOT SQL
Operator NOT pozwala nam zanegować dany warunek.
Na przykład wybierz kraje, które nie mają określonej powierzchni i popularności na km2:
WYBIERAĆ * Z sample_db.country_informationGDZIE NIE obszar > 2 000 000 ORAZ populacja_na_km_kw > 100 ;
Wynik:
Wiele operatorów SQL
Możemy również łączyć wiele operatorów, aby określić bardziej złożone warunki.
WYBIERAĆ * Z sample_db.country_informationGDZIE ( kraj_informacje.obszar > 2 000 000 ORAZ populacja_na_km_kw > 100 ) LUB kraj = 'Chiny' ;
Wyjście:
W tym przykładzie używamy nawiasów, aby zgrupować pierwsze dwa warunki, tak aby były oceniane jako pojedynczy warunek przed porównaniem z trzecim warunkiem.
Wniosek
Nauczyliśmy się, jak używać klauzuli WHERE do określania wielu warunków w SQL. Ponadto omówiliśmy operatory AND, OR, IN i NOT oraz odkryliśmy, jak je łączyć, aby tworzyć bardziej złożone warunki.