Úgy hallottam, sokan nem szeretik: vagy félnek tőle vagy utálkoznak.
Szerintem ennél tömörebben, egyszerűbben nem lehet megfogalmazni, hogy mit szeretnénk egy adathalomból kinyerni. Például:
select * from dolgozo where vezeteknev = 'Kiss'
vagyis: "azokat a dolgozókat szeretném megjeleníteni, akiknek Kiss a vezetékneve". A kutya ott van elásva, hogy kicsit meg kell fordítanunk a gondolkodásmódunkat.
A legtöbb általam látott programozói logika eddig mindig azt csinálta, hogy először megmondtam, milyen halmazon végezzen műveleteket a program, és csak aztán mondtam meg, hogy mit is kéne vele csinálni.
Ezzel szemben itt az van, hogy először megmondom, hogy mi legyen a kimenet, és aztán mondom meg, hogy miből hámozza ezt ki. Valójában viszont az egész a halmazműveletekről szól, hogy mennyire tudom pontosan behatárolni az adott halmazt, mert ha már az megvan, a művelet többnyire egyszerű: hozzáadni, kivonni, szorozni, osztani, értéket adni, stb.
Az SQL segít, hogy a programlogika már csak azokkal az elemekkel foglalkozhasson, amivel ténylegesen dolga van, és ne kelljen feleslegesen végigiterálni olyan elemeken, amik egyébként is fenn akadnak a rostán.
Ha elkezdünk egy egyszerű select-et írni, nem probléma, ha nincs meg rögtön, hogy egy adott mezőt melyik táblából és hogyan érünk el. Először mindig a from-ban meghatározott táblákra koncentráljunk, azok kapcsolataira, mert ott dől el, hogy a felvázolt struktúra jó-e, vagy több sebből vérzik. Utána a where-ben leszűrhetjük a táblánk sorait, és utána kényelmesen kiválasztjuk, hogy mely adatokra lesz szükségünk.
Ez a logika érvényes mind a 4 alapműveletre, és ha sikerül elsajátítani, akkor egyel közelebb vagyunk egy gördülékeny SQL használathoz.