Úvod do klauzule WHERE
Jak všichni víme, SQL (Structured Query Language) je jedním z nejčastěji používaných jazyků pro relační databáze (databáze, ve které jsou záznamy ukládány ve formě řádků a sloupců). V SQL jsou spouštěny dotazy, aby zasáhly databázi za účelem provedení požadovaných operací, ať už jde o operace DML (Data Manipulation Language), DDL (Data Definition Language) nebo DCL (Data Control Language). SQL používá některá klauze jako WHERE, GROUP BY, HAVING, ORDER BY, které provádějí specifické operace. Klauzule WHERE se používá k použití podmínek a odfiltrování výsledků při získávání nebo manipulaci s veškerými daty z databáze. Používá se s příkazy SELECT, UPDATE a DELETE také klauzule WHERE je volitelná pro použití s nimi.
Obecně řečeno, klauzule WHERE,
- Slouží k filtrování řádků podle zadaných kritérií.
- Omezuje počet vrácených řádků.
- Následuje logická podmínka, která vrací buď true nebo false.
- Funguje, pouze pokud uvedená podmínka vrací true.
- Může být použit s příkazy SELECT, UPDATE nebo DELETE.
1. Syntaxe pomocí SELECT
SELECT column1, column2, column3… from table_name WHERE condition;
Zde SELECT načte všechna data ze sloupců 1, sloupce 2, sloupce 3 z tabulky (pojmenované jako název_tabulky) a klauzule WHERE aplikuje podmínky na data získaná příkazem SELECT a filtruje je podle podmínek uvedených v příkazu.
2. Syntaxe s UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Zde Aktualizace aktualizuje hodnotu pro název sloupce s podmínkami, pokud jsou splněny.
Srovnávací a logické operátory lze také použít s podmínkami WHERE jako a, nebo ne, LIKE, <, =, atd.
3. Syntaxe pomocí DELETE
DELETE from table_name WHERE condition;
Ve výše uvedené syntaxi:
název_tabulky | Název tabulky, na které je třeba provést operace. |
stav | Určuje podmínku filtru, pro které je třeba filtrovat záznamy |
column_list | Název sloupců tabulky |
Příklady
Zvažte tabulku studentů s různými sloupci a hodnotami uvedenými níže:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Dillí | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
Scénář č. 1
Získejte ID studenta, jeho jméno, adresu a procento všech studentů, kteří získali více než 80 procent.
Dotaz
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Výsledek:
Počet záznamů: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
Scénář č. 2
Aktualizujte procento Rahul o 2 procenta.
Dotaz
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Výsledek:
Ovlivněné řádky: 1
Pokud narazíme na dotaz, zobrazí se aktualizovaná pole:
Dotaz
SELECT * from students WHERE Stu_name ='Rahul';
Výsledek:
Počet záznamů: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 87 |
Scénář č. 3
Student Ankit opustil školu, takže smažte celý jeho záznam ze stolu.
Dotaz
DELETE from students WHERE Stu_name = 'Ankit';
Výsledek:
Ovlivněné řádky: 1
Zobrazení aktualizovaného studenta tabulky:
Dotaz
SELECT * from students;
Výsledek:
Ovlivněné řádky: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
WHERE klauzule Operations
Klauzule WHERE obsahuje podmínky pro filtrování hodnot databáze. S klauzulí WHERE lze použít různé operátory. Některé z nich jsou uvedeny níže v tabulce s příkladem:
S.No. | Operátor | Popis | Příklad |
1. | A | Vrací true, pokud se obě podmínky shodují | VYBRAT * od studentů WHERE Stu_name = 'Rahul' a Stu_percentage = 85; |
2. | NEBO | Vrací true, pokud některý z
stavové zápasy | VYBRAT * od studentů WHERE Stu_name = 'Rahul' nebo Stu_name = 'Shalendra'; |
3. | V | Hodnota odpovídá libovolné z více zadaných hodnot | VYBRAT * od studentů, KDE Stu_city IN ('AGRA', 'NOIDA'); |
4. | NE V | Hodnota neodpovídá žádné z více zadaných hodnot | VYBRAT * od studentů, KDE Stu_city NEJSOU ('AGRA', 'NOIDA'); |
5. | = | Rovnat se | VYBRAT * od studentů KDE
Stu_name = 'Rahul'; |
6. | > | Větší než | VYBRAT * od studentů KDE Stu_percentage> 80; |
7. | < | Méně než | VYBRAT * od studentů KDE Stu_percentage <78; |
8. | > = | Větší nebo rovno | VYBRAT * od studentů WHERE Stu_percenetage> = 70; |
9. | <= | Méně než nebo rovno | VYBRAT * od studentů WHERE Stu_percenetage <= 70; |
10. | Není rovno | VYBRAT * od studentů WHERE Stu_percentage 75; | |
11. | MEZI | Hodnota leží mezi určitým rozsahem | VYBRAT * od studentů KDE
Stu_percentage MEZI 70 A 85; |
12. | JAKO | Hodnoty odpovídají určitému vzoru. Používá se k vyhledávání zástupných znaků | VYBRAT * od studentů KDE Stu_city LIKE 'AG%'; |
Poznámka: Při práci s klauzulí WHERE je třeba mít na paměti jednu věc, že při určování podmínky nejsou číselné hodnoty citovány v jednoduchých uvozovkách (''), zatímco textové hodnoty (varchar) musí být uváděny v jednom citáty (' ').
Jak funguje klauzule WHERE v SQL?
Ačkoli výše uvedené příklady jasně ukazují, jak se klauzule WHERE používá k filtrování dat podle podmínek zadaných uživatelem a umožňuje rychlejší spuštění kódu SQL, protože počet vrácených záznamů je podmínkou omezen. Optimalizátor dotazů SQL pracuje nejprve na dotazu pomocí tabulky FROM (tabulka, na které je třeba provést operaci), aby se buď načítalo, odstranilo nebo aktualizovalo a poté se na výsledky použila klauzule WHERE.
WHERE klauzule lze použít pouze tehdy, když potřebujeme filtrovat výsledky v jedné tabulce nebo spojení tabulek, protože funguje na datech řádků, ale v případě agregačních funkcí nelze WHERE použít k použití podmínek na dotaz.
Podívejme se na scénář, kde nelze použít klauzuli WHERE:
Scénář: V tabulce „filmů“ načtěte všechny podrobnosti o filmech, které v konkrétních letech vydělají více než 10 crores (2000, 2010, 2012..etc)
Dotaz:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
Výše uvedený příklad používá klauzuli HAVING namísto WHERE, protože klauzule WHERE nelze použít v agregovaných funkcích, zatímco HAVING může, a to je také jeden z hlavních rozdílů mezi klauzulí WHERE a HAVING
Závěr - SQL WHERE Klauzule
Výše uvedené vysvětlení jasně ukazuje použití klauzule WHERE a její implementaci pro různé scénáře v dotazech SQL. Před zapisováním jakéhokoli dotazu je třeba mít na paměti použití každé klauze a scénář, ve kterém by se tato konkrétní klauzule nebo klíčové slovo mělo použít.
Doporučené články
Toto je průvodce klauzulí SQL WHERE. Zde diskutujeme o použití klauzule WHERE a její implementaci pro různé scénáře. Můžete si také prohlédnout naše další doporučené články -
- Typy spojení v SQL
- Zástupné znaky v MySQL
- SQL Vložit dotaz
- Cizí klíč v SQL
- Top 6 typů spojení v MySQL s příklady