Úvod do klauzuly WHERE
Ako všetci vieme, SQL (Structured Query Language) je jedným z najčastejšie používaných jazykov relačných databáz (databáza, v ktorej sa záznamy ukladajú vo forme riadkov a stĺpcov). V SQL sa spúšťajú dotazy, aby zasiahli databázu na vykonanie požadovaných operácií, či už ide o operácie DML (Data Manipulation Language), DDL (Data Definition Language) alebo DCL (Data Control Language). SQL používa niektoré klauzuly ako WHERE, GROUP BY, HAVING, ORDER BY, ktoré vykonávajú špecifické operácie. Klauzula WHERE sa používa na aplikovanie podmienok a filtrovanie výsledkov pri získavaní alebo manipulácii s akýmikoľvek údajmi z databázy. Používa sa s príkazmi SELECT, UPDATE a DELETE aj klauzula WHERE je voliteľná pre použitie s nimi.
Všeobecne povedané, klauzula WHERE,
- Používa sa na filtrovanie riadkov podľa daných kritérií.
- Obmedzuje počet vrátených riadkov.
- Nasleduje logická podmienka, ktorá vracia buď true alebo false.
- Funguje iba vtedy, ak sa uvedená podmienka vráti na true.
- Môže byť použitý s príkazmi SELECT, UPDATE alebo DELETE.
1. Syntax s SELECT
SELECT column1, column2, column3… from table_name WHERE condition;
SELECT tu načíta všetky údaje stĺpca 1, stĺpca 2, stĺpca 3 z tabuľky (pomenované ako table_name) a klauzula WHERE aplikuje podmienky na dáta získané príkazom SELECT a filtruje ich podľa podmienok uvedených v príkaze.
2. Syntax s UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Aktualizácia tu aktualizuje hodnotu pre názov stĺpca s poskytnutou podmienkou.
Porovnávacie a logické operátory môžu byť tiež použité s podmienkou WHERE ako a, alebo nie, PODOBNÉ, <, =, atď.
3. Syntax s príkazom DELETE
DELETE from table_name WHERE condition;
Vo vyššie uvedenej syntaxi:
table_name | Názov tabuľky, na ktorej sa musia vykonať operácie. |
podmienka | Určuje stav filtra, pri ktorom je potrebné filtrovať záznamy |
column_list | Názov stĺpcov tabuľky |
Príklady
Zvážte tabuľku študentov s rôznymi stĺpcami a hodnotami uvedenými nižšie:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
Scenár č. 1
Získajte ID študenta, meno, adresu a percento všetkých študentov, ktorí získali viac ako 80 percent.
Dopyt
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
result:
Počet záznamov: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
Scenár č. 2
Aktualizujte percento Rahulu o 2 percentá.
Dopyt
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
result:
Ovplyvnené riadky: 1
Ak narazíme na dopyt a zobrazíme aktualizované polia:
Dopyt
SELECT * from students WHERE Stu_name ='Rahul';
result:
Počet záznamov: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 87 |
Scenár č. 3
Študent Ankit opustil školu, takže zmažte celý jeho záznam zo stola.
Dopyt
DELETE from students WHERE Stu_name = 'Ankit';
result:
Ovplyvnené riadky: 1
Zobrazenie aktualizovaného študenta tabuľky:
Dopyt
SELECT * from students;
result:
Ovplyvnené riadky: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
KEDY klauzula Operácie
Klauzula WHERE obsahuje podmienky, za ktorých sa filtrujú hodnoty databázy. S klauzula WHERE sa môžu použiť rôzni operátori. Niektoré z nich sú uvedené nižšie v tabuľke s príkladom:
S.No. | operátor | popis | príklad |
1. | A | Vráti true, ak sa obe podmienky zhodujú | VYBERTE * od študentov, KDE Stu_name = 'Rahul' a Stu_percentage = 85; |
2. | OR | Vráti true, ak niektorý z
stavové zhody | VYBERTE * od študentov, KDE Stu_name = 'Rahul' alebo Stu_name = 'Shalendra'; |
3. | IN | Hodnota zodpovedá ktorejkoľvek z viacerých zadaných hodnôt | VYBERTE * od študentov, KDE STU_city IN ('AGRA', 'NOIDA'); |
4. | NIE V | Hodnota nezodpovedá žiadnej z viacerých zadaných hodnôt | VYBERTE * od študentov, KDE STU_city NIE JE V ('AGRA', 'NOIDA'); |
5. | = | rovný | VYBERTE * od študentov KDE
Stu_name = 'Rahul'; |
6. | > | Väčší než | VYBERTE * od študentov, KDE Stu_percentage> 80; |
7. | < | Menej ako | VYBERTE * od študentov, KDE Stu_percentage <78; |
8. | > = | Väčší alebo rovný | VYBERTE * od študentov, KDE Stu_percenetage> = 70; |
9. | <= | Menej ako alebo rovné | VYBERTE * od študentov, KDE Stu_percenetage <= 70; |
10. | Nie je to | VYBERTE * od študentov, KDE Stu_percentage 75; | |
11. | MEDZI | Hodnota leží medzi určitým rozsahom | VYBERTE * od študentov KDE
Stu_percentage MEDZI 70 A 85; |
12. | PÁČI SA MI TO | Hodnoty zodpovedajú určitému vzoru. Používa sa na vyhľadávanie zástupných znakov | VYBERTE * od študentov, KDE Stu_city LIKE 'AG%'; |
Poznámka: Pri práci s klauzuliou WHERE je potrebné pamätať na to, že pri špecifikovaní podmienky sa číselné hodnoty neuvádzajú v jednoduchých úvodzovkách (''), zatiaľ čo textové hodnoty (varchar) sa musia uvádzať v jedinom texte. citácie (' ').
Ako funguje klauzula WHERE v SQL?
Aj keď vyššie uvedené príklady jasne ukazujú, ako sa klauzula WHERE používa na filtrovanie údajov podľa podmienok špecifikovaných používateľom a umožňuje rýchlejšie vykonávanie kódu SQL, pretože počet vrátených záznamov je podmienkou obmedzený. SQL Query Optimizer pracuje najprv na dotaze pomocou FROM (tabuľka, na ktorej je potrebné vykonať operáciu) na získanie, odstránenie alebo aktualizáciu a potom na výsledky aplikuje klauzulu WHERE.
Klauzulu WHERE je možné použiť iba vtedy, keď potrebujeme filtrovať výsledky v jednej tabuľke alebo spojiť tabuľky tak, ako to funguje na údajoch riadkov, ale keď v prípade agregovaných funkcií nie je možné použiť podmienky na použitie dotazu.
Zoberme si scenár, v ktorom nie je možné použiť klauzulu WHERE:
Scenár: V tabuľke „filmy“ získajte všetky podrobnosti o filmoch, ktoré v konkrétnych rokoch zarábajú viac ako 10 crores (2000, 2010, 2012..etc)
Dopyt:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
Vyššie uvedený príklad používa klauzulu HAVING namiesto WHERE, pretože klauzulu WHERE nie je možné použiť v agregovaných funkciách, zatiaľ čo HAVING môže, a to je tiež jeden z hlavných rozdielov medzi klauzulami WHERE a HAVING.
Záver - ustanovenie SQL WHERE
Vyššie uvedené vysvetlenie jasne ukazuje použitie klauzuly WHERE a jej implementáciu pre rôzne scenáre v dotazoch SQL. Pred zapísaním každého dotazu je potrebné mať na pamäti použitie každej vety a scenár, v ktorom by sa mala táto konkrétna klauzula alebo kľúčové slovo použiť.
Odporúčané články
Toto je príručka pre klauzulu SQL WHERE. Tu diskutujeme o použití klauzuly WHERE a jej implementácii pre rôzne scenáre. Môžete si tiež prečítať naše ďalšie navrhované články -
- Typy pripojení v SQL
- Zástupné znaky v MySQL
- SQL Vložiť dotaz
- Cudzí kľúč v SQL
- Top 6 typov spojení v MySQL s príkladmi