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_nimi | Tabeli nimi, millel tuleb toiminguid teha. |
seisund | Määrab filtri tingimuse, mille alusel dokumendid tuleb filtreerida |
veeru_loend | Tabeli veergude nimi |
Näited
Mõelge õpilaste tabelile, millel on erinevad veerud ja allpool nimetatud väärtused:
Stu_id | Stu_name | Stu_adress | Stu_phno | Stu_protsent |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
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_id | Stu_name | Stu_adress | Stu_protsent |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
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_id | Stu_name | Stu_adress | Stu_protsent |
1 | Rahul | Agra | 87 |
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_id | Stu_name | Stu_adress | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
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. | Operaator | Kirjeldus | Näide |
1 | JA | Tagastab tõese, kui mõlemad tingimused vastavad | VALI * õpilastelt, KUS Stu_name = 'Rahul' ja Stu_percentage = 85; |
2 | VÕI | Tagastab tõese, kui üks neist
tingimus sobib | VALI * õpilaste seast KUS Stu_name = 'Rahul' või Stu_name = 'Shalendra'; |
3 | IN | Väärtus sobib ühega mitmest täpsustatud väärtusest | VALI * õpilastelt, kuhu Stu_city IN ('AGRA', 'NOIDA'); |
4 | EI OLE | Väärtus ei vasta ühelegi mitmest täpsustatud väärtusest | VALI * õpilaste seast, kus Stu_city EI OLE ('AGRA', 'NOIDA'); |
5 | = | Võrdne | VALI * õpilastelt, kuhu
Stu_name = 'Rahul'; |
6 | > | Suurem kui | VALI * õpilastelt, kus Stu_protsent> 80; |
7 | < | Vähem kui | VALI * õpilastelt, kus Stu_protsent <78; |
8 | > = | Suurem või võrdne | VALI * õpilastelt, kus Stu_percenetage> = 70; |
9 | <= | Vähem või võrdne | VALI * õpilastelt, kus Stu_percenetage <= 70; |
10. | Ei võrdu | SELECT * õpilastelt, kus Stu_percentage 75; | |
11 | VAHEL | Väärtus jääb teatud vahemikku | VALI * õpilastelt, kuhu
Stuudiosaamise protsent 70 ja 85 VAHEL; |
12. | MEELDIS | Väärtused vastavad teatud mustrile. Kasutatakse metamärgiotsingute tegemiseks | VALI * õ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 -
- Liitumiste tüübid SQL-is
- Rahatähed MySQL-is
- SQL-i sisestuspäring
- Võõrvõti SQL-is
- MySQL-i 6 parimat liitumistüüpi koos näidetega