Feladat: egy adott adatbázison, az adatokból SQL lekérdezések segítségével megválaszolni a szintén megadott kérdéseket.
A feladatok és az adatbázis fájl ezen az oldalon megtalálható.

Először hozzunk létre egy új adatbázist. (gyakorláshoz az SQL-box programcsomagot használtuk, melyben a HeidiSQL-ben írtuk a parancsokat.) Az adatbázis neve legyen pizzeria.
Majd a Fájl menü – SQL fájl futtatása … menüpontban tallózzuk be a letöltött pizza.sql fájlt.
Az adatbáziskezelő programunk frissítése után már láthatjuk is a pizzeria adatbázisunk szerkezetét ill. tartalmát. Arra figyeljünk, hogy az sql fájl futtatásakor a pizzeria adatbázis legyen aktív és ne más, mert az aktív adatbázisba fogja létrehozni a táblákat!
Egy adatbázisban általában nem csak egy táblát tárolunk, hanem többet is. Az adatok átláthatóságának érdekében az adatokat célszerű több táblába rendezni. A táblák összekapcsolással (angolul JOIN) két vagy több táblát tudunk összekötni egy összefüggő mező alapján, azaz két különböző tábla rekordjait tudjuk egybefűzve megjeleníteni.

Az összekapcsolásoknak négy típusát különböztetjük meg:
- (INNER) JOIN
- LEFT (OUTER) JOIN
- RIGHT (OUTER) JOIN
- FULL OUTER JOIN
INNER JOIN: Csak azokat a rekordokat adja vissza, amelyeknek a párja mind a két táblában előfordul.
LEFT JOIN: Visszaadja az összes rekordot a bal oldali táblából, melyhez társítja azokat a jobb oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
RIGHT JOIN: Visszaadja az összes rekordot a jobb oldali táblából, melyhez társítja azokat a bal oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
FULL OUTER JOIN: Visszaadja az összes rekordot függetlenül attól, hogy van-e párja valamelyik oldalon vagy sem. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
Ahhoz hogy a pizzériás adatbázis tábláink között könnyebben eligazodjunk, az egyes táblákat összekapcsoló mezőneveket az alábbi táblázatban foglaltam össze:
(prendeles ékezetes lett, de már nem javítom ki)

Látható, hogy pl. ha a pfutar és a prendeles táblákban lévő adatokra van szükség akkor elég a két táblát összekapcsolni, összerendelésekor a fazon mező lesz amelyben az adatok mindkét táblában egyezni fognak.
De az is látható, hogy ha a pfutar és a ppizza táblák adataira van szükség akkor ez csak úgy kivitelezhető, hogy a pfutar táblát össze kell kapcsolni a prendeles táblával (fazon), majd a prendeles táblát a ptetel táblával tudjuk összekapcsolni (razon) és csak ezután jutunk el a ppizza táblához a ppizza és a ptetel összekapcsolásával (pazon).
Ennyi magyarázkodás után jöjjenek a feladatok, megtekintéshez kattints ide!
