Tanítás, webfejlesztés, programozás, informatika, rock zene

A stressztűrés fontos dolog, mert a stressz kikezdi az embert

A mindennapi stresszek...

324 - Ott kezdődik az óceán

FZ (2020)

Tags: fz_szamok
Music path: https://fzolee.hu/fw2/sites/default/files/photoalbum/Palcikaemberek/324_ott_kezdodik_az_ocean.flac
Time:

A különböző lekérdezések adatai összekapcsolhatók. mivel az SQL halmazoknak tekinti az adattáblákban lévő, illetve a SELECT utasítások által visszaadott eredményeket, ezért a logikai műveletek értelmezhetők:

Amikor egy lekérdezésben egy másik lekérdezés eredményét szeretnénk felhasználni, jól jön az SQL nyelvek egyik tulajdonsága, a lekérdezések egymásba ágyazásának lehetősége.

Ez bizonyos értelemben hasonló ahhoz, mint programozáskor egymásba ágyazott ciklusokat használunk, de mint minden hasonlat ez is sántít. A lényeg az, hogy az al-lekérdezést mindig előbb hajtja végre a szerver, mint a fő lekérdezést!

A lekérdezés eredményét csoportosíthatjuk és a csoportok között is tovább is válogathatunk a GROUP BY és HAVING alparancsokkal.

SELECT mezők FROM tábla
[WHERE feltétel] 
GROUP BY mező   
[HAVING csoport_feltétel];

A GROUP BY alparancs után megadott oszlop értékei alapján az addig megtalált sorokat csoportosítja az adatbázis-kezelő, és a megfelelő csoportokból egy kerül az eredménybe.

A csoportokra vonatkozólag használhatunk függvényeket, amelyek a csoportokra vonakozó értékeket számolhatnak ki.

Az eddigi lekérdezések eredményei a sorok fizikai sorrendjében kerültek kiírásra. Az SQL lehetőséget biztosít a lekérdezés eredménysorainak rendezésére az ORDER BY alparancs segítségével.

Nézzünk néhány példát a lekérdezésekre. A 12.E osztályba járó diákok adatai:  

SELECT * FROM Diakok WHERE Osztaly = '12.E';

A matematikát tanító tanárok azonosítói (DISTINCT itt is használható!):

SELECT DISTINCT Tanar_azonosito FROM Orarend
WHERE Tantargy = 'matematika';

A 'C' betűvel kezdődő nevű diákok:            

Adatok értékeinek lekérdezése több táblából

Amikor az adatokat több táblából kell összeszedni, akkor gondolni kell arra az esetre, hogy különböző táblákban lehetnek ugyanolyan nevű mezők, ezért ilyen esetekben az oszlopok megkülönböztetésére használjuk a táblanevet előtagként.

Általában egy lekérdezésben nem minden rekord adataira vagyunk kíváncsiak. Nem is célszerű minden rekord adatát lekérdezni a kliens oldalon, mivel az eredmény rekordszetet átadja a szerver a kliensnek és ez esetenként rengeteg adat utaztatását jelentené, ami leterheli a hálózatot és a szervert. Az eredményhalmaz szűkítéséhez tudjuk használni a WHERE feltételt

WHERE

A szelekció művelet megvalósítása esetén a SELECT utasítást egy feltétellel egészítjük ki: