Szűrési feltételek
Az adatbázis parancsokba írható szűrési feltételek leírása
- Főoldal
/
- Kurzusok
/
- SQL
/
- SQL kezdőknek
Szűrési feltételek
Amikor az adatbázis táblázatainak adatai közül szeretnénk kiválasztani, módosítani vagy törölni néhányat, esetleg csak egyet, akkor ezt csakis a Szúrési feltételek segítségével tudjuk végrehajtani.
Miről is szólnak a feltételek? Feltételezzük, hogy az egyik táblázatunkban vannak 100 személynek az adatai, amelyek közül szeretnénk azzal a 10 személlel foglalkozni akiknek a családneve egy bizonyos formában kezdődik. Nem fogjuk lekérni mind a 100 személy adatait, majd ellenőrizzük és csak azokkal dolgozunk amelyek megfelelnek nekünk, mert ez szó szerint megölné az egész programot. Képzeljük el ha így lehetne csak megoldani és 1 millió személy adata lenne a táblázatban.
Az ilyen esetekben tudjuk használni a feltételeket, vagy amikor szintén ebből a táblázatból szeretnénk megmódosítani adatokat, esetleg törölni.
A parancs használata függetlenül attól, hogy mit is szeretnénk, a táblázat nevének megadása után jön:
// Adatok lekérdezése esetén
SELECT * FROM `táblázat neve` WHERE 'feltételek';
// Adatok módosítása esetén
UPDATE `táblázat neve` SET 'uj adatok' WHERE 'feltételek';
// Adatok tőrlése esetén
DELETE FROM `táblázat neve` WHERE 'feltételek';
Szűrési beállítható feltételek választéka elég nagy, pl. valami = valamivel, valami úgy kezdődik hogy, valami kisebb mint, stb.
Több feltételt is írhatunk egy parancs esetében, ezeket az AND (és) vagy az OR (vagy) kulcsszavak segítségével tehetjük meg.
// És feltétel
WHERE `oszlop1` = 'érték1' AND `oszlop2` = 'érték2';
// Vagy feltétel
WHERE `oszlop1` = 'érték1' OR `oszlop2` = 'érték2';
Az AND (és) feltétel esetében mindkét feltételnek teljesülnie kell, az OR (vagy) feltétel esetében pedig csak az egyiknek a kettő közül.
Fordulhat elő olyan eset is, amikor két különböző feltétel kell teljesüljön vagy egy harmadik, esetleg két feltétel közül az egyik és egy harmadik. Az ilyen esetekben a "()" zárójelek segítségével tudjuk meghatározni, hogy milyen formában is kell teljesüljenek a feltételek, hisz a parancsok mind ugyanazok:
// És feltétel
WHERE ( `oszlop1` = 'érték1' AND `oszlop2` = 'érték2' ) OR `oszlop3` = 'érték3';
// Vagy feltétel
WHERE `oszlop1` = 'érték1' AND ( `oszlop2` = 'érték2' OR `oszlop3` = 'érték3' );
A két parancs csak a zárójelezésben különbözik, ami egy óriási különbség, nem szabad figyelmen kívül hagyni.
Ha nem tennénk zárójeleket akkor az OR feltétel miatt ahol teljesül a feltétel ott mindig igazat adna, attól függetlenül, hogy az AND feltételek teljesülnek-e.
Fontosabb feltételek
1. Valami egyenlő valamivel (equal)
Jele: =
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke pontosan egyenlő-e azzal amit mi szeretnénk, ha nem akkor a feltétel nem teljesül.
// Az oszlop értéke egyenlő egy értékkel
WHERE `oszlop1` = 'érték1'
Amennyiben az oszlop értéke egyenlő érték11 vagy érték, a feltétel nem teljesül, csak akkor ha az oszlop értéke pontosan egyenlő érték1.
Amire itt vigyázni kell, hogy a programozásban rendszerint kettő darab = jelet kell tenni, itt CSAK EGYET.
2. Valami nem egyenlő valamivel (not equal) vagy különbözik
Jele: != vagy <>
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke nem egyenlő egy bizonyos értékkel.
// Az oszlop értéke nem egyenlő egy értékkel
WHERE `oszlop1` != 'érték1'
// Az oszlop értéke különbözik egy értéktől
WHERE `oszlop1` <> 'érték1'
Bár mindkét eset ugyanazt vizsgálja, mert ha egy érték különbözik egy másiktől, akkor az nem egyenlő, de ebben az esetben mindenki magának választhatja ki, hogy melyik változat szimpatikusabb. A != változat a megszokottabb szerintünk, mivel a programozásban írható feltételeknél is ebben a formában használják.
3. Valami kisebb egy adott értéknél, kisebb mint (lesser than)
Jele: <
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke kisebb-e, mint egy adott érték, ez az érték lehet egy szám, vagy akár egy szó is, ebben az esetben az ABC betűinek sorrendje fogja eldönteni a feltételt, akár két dátumot is össze lehet hasonlítani.
WHERE `oszlop1` < '10'
4. Valami nagyobb egy adott értéknél, nagyobb mint (greather than)
Jele: >
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke nagyobb-e, mint egy adott érték, ez az érték lehet egy szám, vagy akár egy szó is, ebben az esetben az ABC betűinek sorrendje fogja eldönteni a feltételt, akár két dátumot is össze lehet hasonlítani.
WHERE `oszlop1` > '10'
5. Kisebb vagy egyenlő mint (lesser or equal than)
Jele: <=
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke kisebb vagy egyenlő-e, mint egy adott érték.
WHERE `oszlop1` <= '10'
6. Nagyobb vagy egyenlő mint (greather or equal than)
Jele: >=
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke nagyobb vagy egyenlő-e, mint egy adott érték.
WHERE `oszlop1` >= '10'
7. Adott értékek közül valamelyikkel egyezik-e (IN)
Jele: IN
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke megtalálható-e egy listában, értékek sorozatában.
WHERE `oszlop1` IN ( '10', '20' )
Ez a feltétel csak akkor teljesül, ha az oszlop1 értéke 10 vagy 20, egyéb esetekben nem teljesül.
Ebben az esetben az összehasonlítandó értékeket "()" zárójelek közé kell írnunk, vesszővel elválasztva egymástól. Ez a lista lehet egy másik SELECT által visszatérített lista is:
WHERE `oszlop1` IN ( SELECT 'oszlop1' FROM ... )
8. Adott értékek közül nem egyezik egyikkel sem (NOT IN)
Jele: NOT IN
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke ne legyen benne egy listában, értékek sorozatában.
WHERE `oszlop1` NOT IN ( '10', '20' )
Ez a feltétel csak akkor teljesül, ha az oszlop1 értéke nem 10 és nem is 20, tehát az érték nincs benne a listában, egyéb esetekben nem teljesül.
9. Az oszlop értéke nincs megadva (NULL)
Jele: IS NULL
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke ne legyen meghatározva, tehát még nem írtunk bele semmit.
WHERE `oszlop1` IS NULL
Itt vigyázni kell, nem tévesztendő össze azzal a feltétellel, hogy: oszlop1 = '', mert a két eset teljesen különböző. Első esetben az oszlop értékét még sosem határozták meg, második esetben az oszlop értéke egyenlő üres szöveggel!
10. Az oszlop értéke meg volt adva (NOT NULL)
Jele: IS NULL
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke ne legyen meghatározva, tehát még nem írtunk bele semmit.
WHERE `oszlop1` IS NOT NULL
Ez a feltétel csak akkor teljesül, ha az oszlop1 értéke meg volt adva, akár egy szám, egy szöveg, egy üres szöveg, vagy bármi más.
11. Az oszlop értéke tartalmaz egy szövegrészletet (LIKE)
Jele: LIKE
Ezt a feltételt arra használjuk, hogy ellenőrizzük egy adott oszlop értéke tartalmaz egy bizonyos szöveget vagy sem. Bár erre még létezik egy LOCATE nevezetű függvény is, amely megmondja, hogy tartalmazza-e a szöveget vagy sem, a LIKE parancs mégis más. Ennek a parancsnak a segítségével megszabhatjuk azt is, hogy a szöveg elején vagy végén kell létezzen amit keresünk, vagy akár a közepén. Erre használhatjuk a % karaktert a parancsban, ami azt jelenti, hogy a helyére akárhány és akármilyen karakter kerülhet:
// Amikor az alma szót keressük akárhol a szövegben
WHERE `oszlop1` LIKE '%alma%'
// Amikor az alma szót keressük csak a szöveg elején
WHERE `oszlop1` LIKE 'alma%'
// Amikor az alma szót keressük csak a szöveg végén
WHERE `oszlop1` LIKE '%alma'
Ha kifelejtjük a % jeleket a parancsból, akkor az olyan lesz, mintha az = feltételt használtuk volna.
Ezeket a feltételeket kombinálva bármilyen formában meg tudjuk szűrni az adatainkat.
- Előző lecke: Műveletek adatokkal
- Következő lecke: Adatok lekérdezése
Részletek
- Megtekintve: 181
- Haszontalannak jelölve: 0
- Hasznosnak jelölve: 0
- Értékelés: