Wprowadzenie do klauzuli WHERE
Jak wszyscy wiemy, SQL (Structured Query Language) jest jednym z najczęściej używanych języków relacyjnych baz danych (baza danych, w której zapisywane są rekordy w postaci wierszy i kolumn). W zapytaniach SQL są uruchamiane w celu trafienia do bazy danych w celu wykonania żądanych operacji, czy to DML (Data Manipulation Language), DDL (Data Definition Language) lub DCL (Data Control Language). SQL używa niektórych klauzul, takich jak GDZIE, GRUPUJ WEDŁUG, POSIADAJĄC, ORDER BY, które wykonują określone operacje. Klauzula WHERE służy do stosowania warunków i filtrowania wyników podczas pobierania lub manipulowania danymi z bazy danych. Jest on używany z instrukcją SELECT, UPDATE i DELETE, również klauzula WHERE jest opcjonalna do użycia z nimi.
Ogólnie rzecz biorąc, klauzula WHERE,
- Służy do filtrowania wierszy według podanych kryteriów.
- Ogranicza liczbę zwracanych wierszy.
- Po którym następuje warunek logiczny, który zwraca true lub false.
- Działa tylko wtedy, gdy wymieniony warunek zwraca wartość true.
- Można go używać z instrukcjami SELECT, UPDATE lub DELETE.
1. Składnia z WYBIERZ
SELECT column1, column2, column3… from table_name WHERE condition;
Tutaj SELECT pobierze wszystkie dane z kolumny 1, kolumny 2, kolumny 3 z tabeli (nazwanej jako nazwa_tabeli), a klauzula WHERE stosuje warunki do danych pobranych przez instrukcję SELECT i filtruje je zgodnie z warunkiem wymienionym w instrukcji.
2. Składnia z UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Tutaj Aktualizacja zaktualizuje wartość dla nazwa_kolumny, pod warunkiem, że warunek.
Operatory porównania i logiczne mogą być również używane z warunkiem GDZIE, takim jak i, lub, nie, JAK, <, = itd.
3. Składnia z DELETE
DELETE from table_name WHERE condition;
W powyższej składni:
Nazwa tabeli | Nazwa tabeli, na której należy wykonać operacje. |
stan | Określa warunek filtrowania, według którego rekordy muszą być filtrowane |
lista_kolumnowa | Nazwa kolumn tabeli |
Przykłady
Rozważ tabelę studentów mającą różne kolumny i wartości wymienione poniżej:
Stu_id | Stu_name | Adres Stu | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2) | Ankit | Delhi | 8855664471 | 75 |
3) | Shailendra | Noida | 7213457896 | 92 |
Scenariusz nr 1
Pobierz identyfikator studenta, nazwisko, adres i odsetek wszystkich studentów, którzy uzyskali więcej niż 80 procent.
Pytanie
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Wynik:
Liczba rekordów: 2
Stu_id | Stu_name | Adres Stu | Stu_percentage |
1 | Rahul | Agra | 85 |
3) | Shailendra | Noida | 92 |
Scenariusz nr 2
Zaktualizuj procent Rahula o 2 procent.
Pytanie
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Wynik:
Rzędy wpływające: 1
Jeśli trafimy w zapytanie, aby wyświetlić zaktualizowane pola:
Pytanie
SELECT * from students WHERE Stu_name ='Rahul';
Wynik:
Liczba rekordów: 1
Stu_id | Stu_name | Adres Stu | Stu_percentage |
1 | Rahul | Agra | 87 |
Scenariusz nr 3
Student Ankit opuścił szkołę, więc usuń cały jego rekord ze stołu.
Pytanie
DELETE from students WHERE Stu_name = 'Ankit';
Wynik:
Rzędy wpływające: 1
Aby wyświetlić zaktualizowanego ucznia tabeli:
Pytanie
SELECT * from students;
Wynik:
Rzędy wpływ: 2
Stu_id | Stu_name | Adres Stu | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3) | Shailendra | Noida | 7213457896 | 92 |
GDZIE klauzule Operacje
Klauzula WHERE zawiera warunki, według których wartości bazy danych są filtrowane. Z klauzulą WHERE można korzystać z różnych operatorów. Niektóre z nich podano poniżej w tabeli z przykładem:
S.No. | Operator | Opis | Przykład |
1. | I | Zwraca true, jeśli oba warunki są zgodne | WYBIERZ * od studentów GDZIE Stu_name = 'Rahul' i Stu_percentage = 85; |
2) | LUB | Zwraca true, jeśli którykolwiek z
warunki dopasowania | WYBIERZ * od studentów GDZIE Stu_name = 'Rahul' lub Stu_name = 'Shalendra'; |
3) | W | Wartość odpowiada dowolnej z wielu podanych wartości | WYBIERZ * od studentów GDZIE Stu_city IN („AGRA”, „NOIDA”); |
4 | NIE W | Wartość nie pasuje do żadnej z wielu podanych wartości | WYBIERZ * od studentów GDZIE STU_city NOT IN („AGRA”, „NOIDA”); |
5 | = | Równy | WYBIERZ * od studentów GDZIE
Stu_name = 'Rahul'; |
6. | > | Lepszy niż | WYBIERZ * od studentów GDZIE Stup_percentage> 80; |
7 | < | Mniej niż | WYBIERZ * od studentów GDZIE Stu_percentage <78; |
8 | > = | Większe bądź równe | WYBIERZ * od studentów GDZIE Stu_percenetage> = 70; |
9 | <= | Mniejszy lub równy | WYBIERZ * od studentów GDZIE Stu_percenetage <= 70; |
10 | Nie równa się | WYBIERZ * od studentów GDZIE Stu_percentage 75; | |
11 | POMIĘDZY | Wartość leży między pewnym zakresem | WYBIERZ * od studentów GDZIE
Stu_percentage MIĘDZY 70 A 85; |
12 | LUBIĆ | Wartości pasują do określonego wzorca. Służy do wyszukiwania symboli wieloznacznych | WYBIERZ * od studentów GDZIE Stu_city LIKE „AG%”; |
Uwaga: Podczas pracy z klauzulą WHERE należy pamiętać o jednej rzeczy: podczas określania warunku wartości liczbowe nie są cytowane w pojedynczych cudzysłowach (''), podczas gdy wartości tekstowe (varchar) muszą być cytowane pojedynczo cytaty (' ').
Jak działa klauzula WHERE w SQL?
Chociaż powyższe przykłady wyraźnie pokazują, w jaki sposób klauzula WHERE jest używana do filtrowania danych zgodnie z warunkiem określonym przez użytkownika i umożliwia szybsze wykonanie kodu SQL, ponieważ liczba zwracanych rekordów jest ograniczona przez ten warunek. Optymalizator zapytań SQL działa najpierw na zapytaniu przy użyciu FROM (tabela, na której należy wykonać operację) w celu pobrania, usunięcia lub aktualizacji, a następnie zastosowania klauzuli WHERE do wyników.
Klauzuli WHERE można użyć tylko wtedy, gdy musimy filtrować wyniki w pojedynczej tabeli lub łączyć tabele, ponieważ działa ona na danych wierszy, ale gdy w przypadku funkcji agregujących WHERE nie można zastosować do zastosowania warunków do zapytania.
Rozważmy scenariusz, w którym nie można użyć klauzuli WHERE:
Scenariusz: w tabeli „filmów” pobierz wszystkie szczegóły dotyczące filmów, które zarabiają ponad 10 koron w poszczególnych latach, takich jak (2000, 2010, 2012..etc)
Pytanie:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
W powyższym przykładzie użyto klauzuli HAVING zamiast WHERE, ponieważ klauzula WHERE nie może być używana w funkcjach agregujących, podczas gdy HAVING może i jest to również jedna z głównych różnic między klauzulą WHERE a HAVING
Wniosek - klauzula SQL GDZIE
Powyższe wyjaśnienie wyraźnie pokazuje użycie klauzuli WHERE i jej implementację dla różnych scenariuszy w zapytaniach SQL. Przed napisaniem jakiegokolwiek zapytania należy pamiętać o użyciu każdej klauzuli i scenariuszu, w którym należy użyć tej konkretnej klauzuli lub słowa kluczowego.
Polecane artykuły
Jest to przewodnik po klauzuli SQL WHERE. Tutaj omawiamy użycie klauzuli WHERE i jej implementację w różnych scenariuszach. Możesz także przejrzeć nasze inne sugerowane artykuły -
- Rodzaje złączeń w SQL
- Symbole wieloznaczne w MySQL
- Zapytanie wstawiania SQL
- Klucz obcy w SQL
- Top 6 rodzajów połączeń w MySQL z przykładami