Ú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_nameNázov tabuľky, na ktorej sa musia vykonať operácie.
podmienkaUrčuje stav filtra, pri ktorom je potrebné filtrovať záznamy
column_listNázov stĺpcov tabuľky

Príklady

Zvážte tabuľku študentov s rôznymi stĺpcami a hodnotami uvedenými nižšie:

Stu_idStu_nameStu_addressStu_phnoStu_percentage
1RahulAgra955780662585
2AnkitDelhi885566447175
3ShailendraNoida721345789692

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_idStu_nameStu_addressStu_percentage
1RahulAgra85
3ShailendraNoida92

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_idStu_nameStu_addressStu_percentage
1RahulAgra87

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_idStu_nameStu_addressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

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átorpopispríklad
1.AVráti true, ak sa obe podmienky zhodujúVYBERTE * od študentov, KDE Stu_name = 'Rahul' a Stu_percentage = 85;
2.ORVráti true, ak niektorý z

stavové zhody

VYBERTE * od študentov, KDE Stu_name = 'Rahul' alebo Stu_name = 'Shalendra';
3.INHodnota zodpovedá ktorejkoľvek z viacerých zadaných hodnôtVYBERTE * od študentov, KDE STU_city IN ('AGRA', 'NOIDA');
4.NIE VHodnota nezodpovedá žiadnej z viacerých zadaných hodnôtVYBERTE * 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 akoVYBERTE * 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 toVYBERTE * od študentov, KDE Stu_percentage 75;
11.MEDZIHodnota leží medzi určitým rozsahomVYBERTE * od študentov KDE

Stu_percentage MEDZI 70 A 85;

12.PÁČI SA MI TOHodnoty zodpovedajú určitému vzoru. Používa sa na vyhľadávanie zástupných znakovVYBERTE * 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 -

  1. Typy pripojení v SQL
  2. Zástupné znaky v MySQL
  3. SQL Vložiť dotaz
  4. Cudzí kľúč v SQL
  5. Top 6 typov spojení v MySQL s príkladmi