Spread the love
  • 11 hónap telt el az utolsó módosítás óta
  • 4perc
  • 923szó
  • 246olvasás

A WHERE utasítás és az operátorok

Az SQL WHERE utasítását arra használjuk, hogy a lekérdezést szűrni tudjuk, a lekérdezés eredményeként csak azok a rekordok kerülnek megjelenítésre, amelyek eleget tesznek a WHERE után meghatározott feltételeknek.

SELECT oszlop(ok)
FROM tábla
WHERE feltétel(ek);

(Természetesen a WHERE záradékot nem csak SELECT esetében lehet használni, hanem UPDATE, DELETE és egyéb utasítások esetében is.)

A WHERE utasítás után kell meghatároznunk azt a feltételt vagy azokat feltételeket, amelyeket szeretnénk, ha teljesülnének. Csak azok a rekordok kerülnek majd kilistázásra, amelyek teljesítik a feltételeket.

Csak úgy, mint a programozási nyelvekben, itt is meghatározhatunk egyszerű és összetett feltételeket, melyek során használhatunk logikai, aritmetikai és relációs operátorokat is.

A WHERE utasítással leggyakrabban használt operátorok: egyenlő, nem egyenlő (NOT), kisebb, nagyobb, kisebb vagy egyenlő, nagyobb vagy egyenlő, AND (és), OR (vagy), BETWEEN, LIKE, IN, EXISTS, ANY és ALL.

Az egyenlő operátorral konkrét egyenlőséget vizsgálhatunk. Csak azok a rekordok lesznek kilistázva, amelyek esetében a feltételnél megadott kulcs és érték teljes egyezőséget mutat.

WHERE oszlop = érték;
WHERE vezeteknev = Horváth„;

A nagyobb operátorral azokat a rekordokat szűrhetjük ki, amelyek esetében a vizsgált oszlop értéke nagyobb az általunk meghatározott értéknél.

WHERE oszlop > érték;
WHERE szuletesi_ev > 2000;

A kisebb operátorral azokat a rekordokat szűrhetjük ki, amelyek esetében a vizsgált oszlop értéke kisebb az általunk meghatározott értéknél.

WHERE oszlop < érték;
WHERE szuletesi_ev < 2000;

A nagyobb vagy egyenlő operátorral azokat a rekordokat szűrhetjük ki, amelyek esetében a vizsgált oszlop értéke nagyobb vagy egyenlő az általunk meghatározott értéknél.

WHERE oszlop >= érték;
WHERE szuletesi_ev >= 1961;

A kisebb vagy egyenlő operátorral azokat a rekordokat szűrhetjük ki, amelyek esetében a vizsgált oszlop értéke kisebb vagy egyenlő az általunk meghatározott értéknél.

WHERE oszlop <= érték;
WHERE szuletesi_ev <= 2005;

A nem egyenlő vagy NOT operátor hazsnálatával csak azok a rekordok kerülnek kilistázásra, amelyek esetében a vizsgált oszlop értéke nem egyezik meg a megadott értékkel. Ezt többféle módon megfogalmazhatjuk.

WHERE oszlop <> érték;
WHERE oszlop != érték;
WHERE NOT oszlop = érték;

WHERE szuletesi_ev != 2005;
WHERE szuletesi_ev <> 2005;
WHERE NOT szuletesi_ev = 2005;

Az AND operátor kicsit eltér az előzőektől, hiszen ezzel nem egy konkrét oszlop és a hozzákapcsolódó érték viszonyát tudjuk meghatározni, hanem segítségével több feltételt tudunk összefűzni. Az AND operátor megszabja, hogy csak azok a rekordok legyenek kilistázva, amelyek esetében az összes feltétel teljesül. Elméletileg tetszőleges számú feltételt adhatunk meg.

WHERE feltétel1 AND feltétel2 …;
WHERE szuletesi_ev>1985 AND szuletesi_ev < 2005;

Az OR szintén több feltétel összekapcsolására használható, de nem csak azok a rekordok kerülnek kilistázásra, amelyek esetében az összes feltétel teljesül, hanem azok is, amelyek esetében csak a feltételek egy része. Elméletileg etszőleges számú feltételt adhatunk meg.

WHERE feltétel1 OR feltétel2 …;
WHERE lakhely = Budapest” OR lakhely = Debrecen„;

A BETWEEN operátorral megadhatjuk, hogy egy rekord csak akkor kerüljön megjelenítésre, ha az értéke két határtérték közé esik.

WHERE oszlop BETWEEN érték1 AND érték2;
WHERE szuletesi_ev BETWEEN 1985 AND 1989;

A LIKE operátort arra lehet használni, hogy egy adott mintának (patern) megfelelő oszlopértékeket keressünk.

WHERE oszlop LIKE minta;

% vagy *: bármennyi karakter helyettesítésére alkalmas
_ vagy ?: egyetlen egy karakter helyettesítésére alkalmas

WHERE vezeteknev LIKE „L%”;

Az IN operátorral egy halmazt határozhatunk meg, amelynek elemeit elfogadjuk a vizsgált oszlop értékéül.

WHERE oszlop IN (értékek);
WHERE lakhely IN („Debrecen„, „Nyíregyháza„);

Az EXISTS operátorral azt tudjuk tesztelni, hogy az allekérdezésnek van-e eredménye vagy sem. Ha az allekérdezés rekorddal vagy rekordokkal tér vissza, akkor az EXISTS operátor TRUE (igaz) értéket ad vissza, ellenkező esetben FALSE-t, azaz hamist.

WHERE EXISTS (allekérdezés);
WHERE EXISTS (SELECT * FROM sql_table WHERE lakhely = Budapest„);

Az ANY operátor egy logikai értékkel tér vissza: igazzal, ha van olyan rekord, amely eleget tesz az allekérdezésnek, és hamissal, ha egyetlen egy rekord sem tesz eleget az allekérdezésnek.

WHERE oszlop operátor ANY (allekérdezés);
WHERE keresztnev = ANY (SELECT keresztnev FROM sql_table WHERE lakhely = Budapest„);

Az ALL operátor használatakor minden rekordnak meg kell felelni az allekérdezésben támasztott feltételeknek. Akkor tér vissza TRUE értékkel, ha az összes rekord megfelel az allekérdezésnek, minden ellenkező esetben FALSE értékkel tér vissza.

WHERE oszlop operátor ALL (allekérdezés);
WHERE ID = ANY (SELECT ID FROM sql_table WHERE lakhely = Budapest„);

 Források

djp

Hogyan értékeli a posztot?

Kattins a megfelelő csillagra!

Átlagpontszám 0 / 5. Értkelés 0

Még nem értékeltél!

Vélemény, hozzászólás?