Sissejuhatus WHERE klauslisse

Nagu me kõik teame, on SQL (Structured Query Language) kõige sagedamini kasutatav keel relatsiooniandmebaaside jaoks (andmebaas, kuhu kirjed salvestatakse ridade ja veergude kujul). SQL-is vallandatakse päringud andmebaasi jõudmiseks soovitud toimingute tegemiseks, olgu selleks siis DML (andmemanipuleerimise keel), DDL (andmete määratluse keel) või DCL (andmejuhtimiskeel). SQL kasutab mõnda klauslit, näiteks WHERE, GROUP BY, HAVING, ORDER BY, mis täidavad konkreetseid toiminguid. WHERE klauslit kasutatakse tingimuste rakendamiseks ja tulemuste filtreerimiseks, andmebaasist andmete hankimisel või nendega manipuleerimisel. Seda kasutatakse koos SELECT, UPDATE ja DELETE avaldusega, samuti on WHERE klausel nendega kasutamiseks valikuline.

Üldiselt, WHERE klausel,

  • Kasutatakse ridade filtreerimiseks vastavalt etteantud kriteeriumidele.
  • Piirab tagastatud ridade arvu.
  • Järgneb loogiline tingimus, mis tagastab kas õige või vale.
  • Toimib ainult siis, kui mainitud tingimus vastab tõele.
  • Seda saab kasutada avaldustega SELECT, UPDATE või DELETE.

1. Süntaks nupuga SELECT

SELECT column1, column2, column3… from table_name WHERE condition;

Siin hangib SELECT tabelist kõik veeru 1, veeru 2 ja veeru 3 andmed (mida nimetatakse tabeli_nimeks) ja WHERE klausel rakendab tingimusi SELECT-avaldusega hangitud andmetele ja filtreerib need vastavalt avalduses nimetatud tingimusele.

2. Süntaks UPDATE-ga

UPDATE table_name SET column_name = value WHERE condition;

Siin värskendab värskendus veeru_nimi väärtust tingimusel, kus tingimus.

Võrdlus- ja loogikaoperaatoreid saab kasutada ka tingimustes WHERE nagu ja, või, või mitte, LIKE, <, = jne.

3. Süntaks kustutamisega

DELETE from table_name WHERE condition;

Ülaltoodud süntaksis:

tabeli_nimiTabeli nimi, millel tuleb toiminguid teha.
seisundMäärab filtri tingimuse, mille alusel dokumendid tuleb filtreerida
veeru_loendTabeli veergude nimi

Näited

Mõelge õpilaste tabelile, millel on erinevad veerud ja allpool nimetatud väärtused:

Stu_idStu_nameStu_adressStu_phnoStu_protsent
1RahulAgra955780662585
2AnkitDelhi885566447175
3ShailendraNoida721345789692

1. stsenaarium

Hankige õpilase ID, õpilase nimi, aadress ja protsent kõigist õpilastest, kes viskasid rohkem kui 80 protsenti.

Päring

SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;

Tulemus:

Kirjete arv: 2

Stu_idStu_nameStu_adressStu_protsent
1RahulAgra85
3ShailendraNoida92

2. stsenaarium

Uuendage Rahuli protsenti 2 protsenti.

Päring

UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';

Tulemus:

Mõjutatud read: 1

Kui vajutame värskendatud väljade kuvamiseks päringule:

Päring

SELECT * from students WHERE Stu_name ='Rahul';

Tulemus:

Kirjete arv: 1

Stu_idStu_nameStu_adressStu_protsent
1RahulAgra87

3. stsenaarium

Õpilane Ankit on koolist lahkunud, nii et kustutage tabelist kogu tema rekord.

Päring

DELETE from students WHERE Stu_name = 'Ankit';

Tulemus:

Mõjutatud read: 1

Uuendatud tabeliõpilase vaatamiseks toimige järgmiselt.

Päring

SELECT * from students;

Tulemus:

Mõjutatud read: 2

Stu_idStu_nameStu_adressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

Kus klausel Toimingud

WHERE klausel sisaldab tingimusi, mille alusel andmebaasi väärtused filtreeritakse. WHERE klausliga saab kasutada mitmesuguseid operaatoreid. Mõned neist on toodud allpool tabelis koos näitega:

S.N.OperaatorKirjeldusNäide
1JATagastab tõese, kui mõlemad tingimused vastavadVALI * õpilastelt, KUS Stu_name = 'Rahul' ja Stu_percentage = 85;
2VÕITagastab tõese, kui üks neist

tingimus sobib

VALI * õpilaste seast KUS Stu_name = 'Rahul' või Stu_name = 'Shalendra';
3INVäärtus sobib ühega mitmest täpsustatud väärtusestVALI * õpilastelt, kuhu Stu_city IN ('AGRA', 'NOIDA');
4EI OLEVäärtus ei vasta ühelegi mitmest täpsustatud väärtusestVALI * õpilaste seast, kus Stu_city EI OLE ('AGRA', 'NOIDA');
5=VõrdneVALI * õpilastelt, kuhu

Stu_name = 'Rahul';

6>Suurem kuiVALI * õpilastelt, kus Stu_protsent> 80;
7<Vähem kuiVALI * õpilastelt, kus Stu_protsent <78;
8> =Suurem või võrdneVALI * õpilastelt, kus Stu_percenetage> = 70;
9<=Vähem või võrdneVALI * õpilastelt, kus Stu_percenetage <= 70;
10.Ei võrduSELECT * õpilastelt, kus Stu_percentage 75;
11VAHELVäärtus jääb teatud vahemikkuVALI * õpilastelt, kuhu

Stuudiosaamise protsent 70 ja 85 VAHEL;

12.MEELDISVäärtused vastavad teatud mustrile. Kasutatakse metamärgiotsingute tegemiseksVALI * õpilaste seast, kus Stu_city LIKE 'AG%';

Märkus. WHERE-klausliga töötamisel tuleb meeles pidada ühte asja, et tingimuse täpsustamisel ei esitata numbrilisi väärtusi üksikutes jutumärkides (''), samas kui tekstiväärtused (varchar) tuleb esitada ühekordselt tsitaat (' ').

Kuidas WHERE klausel SQL-is töötab?

Kuigi ülaltoodud näited näitavad selgelt, kuidas klauslit WHERE kasutatakse andmete filtreerimiseks vastavalt kasutaja täpsustatud tingimusele ja see võimaldab SQL-koodi kiiremat täitmist, kuna tagastatud kirjete arv on tingimusega piiratud. SQL Query optimeerija töötab kõigepealt päringuga, kasutades FROM-i (tabel, mille alusel tuleb toiming teha), et see siis kas alla laadida, kustutada või värskendada ning seejärel tulemustele WHERE-lause rakendada.

WHERE klauslit saab kasutada ainult siis, kui peame tulemused filtreerima ühes tabelis või tabelite liitmisel, kuna see töötab ridade andmetel, kuid kui funktsioonide liitmise korral ei saa WHERE-d kasutada päringule tingimuste rakendamiseks.

Vaatleme stsenaariumi, kus klauslit WHERE ei saa kasutada:

Stsenaarium: hankige filmide tabelist kõik üksikasjad filmide kohta, mis teenivad rohkem kui 10 kroorat teatud aastatel (nt 2000, 2010, 2012..etc)

Päring:

SELECT * from movies GROUP BY Year_released HAVING earnings > 10;

Ülaltoodud näites kasutatakse WHERE asemel klauslit HAVING, kuna WHERE klauslit ei saa kasutada koondfunktsioonides, samas kui HAVING saab, ja see on ka üks olulisemaid erinevusi WHERE ja HAVING klausli vahel

Järeldus - SQL, kus klausel

Ülaltoodud selgitus näitab selgelt WHERE klausli kasutamist ja selle rakendamist SQL-i päringute erinevate stsenaariumide korral. Enne päringu kirjutamist tuleb meeles pidada iga klausli kasutamist ja stsenaariumi, milles seda konkreetset klauslit või märksõna tuleks kasutada.

Soovitatavad artiklid

See on SQL WHERE klausli juhend. Siin arutatakse WHERE klausli kasutamist ja selle rakendamist erinevate stsenaariumide jaoks. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Liitumiste tüübid SQL-is
  2. Rahatähed MySQL-is
  3. SQL-i sisestuspäring
  4. Võõrvõti SQL-is
  5. MySQL-i 6 parimat liitumistüüpi koos näidetega