Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Tehetséggondozás az informatikában – Adatbázis-kezelés / Lekérdezések /Allekérdezések

Lekérdezések

Választó lekérdezések

Allekérdezések

Azokban az esetekben beszélünk allekérdezésről, amikor egy lekérdezés bármelyik adatát egy másik lekérdezés szolgáltatja. Ez esetben a „szolgáltató” lekérdezést allekérdezésnek, alkérdésnek, vagy alselectnek nevezzük.

Megjegyzés

Ez utóbbi a választó lekérdezés SQL kódjában szereplő SELECT záradékra utaló elnevezés.

Az allekérdezés – hasonlóan minden más lekérdezéshez – egy halmazt állít elő. Ha a halmaz egyelemű (tehát egy sort és egy oszlopot tartalmaz), akkor egyszerű dolgunk van, hiszen azt megadhatjuk feltételnek, összehasonlíthatunk vele, stb. Viszont, ha többelemű, akkor csak azt vizsgálhatjuk, hogy a főkérdésben szereplő mező elemei benne vannak, vagy nincsenek benne az allekérdés által visszaadott halmazban.

Megjegyzés

Ilyen esetben SQL-ben a WHERE záradékban csak az IN/NOT IN operátorok használhatóak.

OKTV 2004/2005. 3. forduló 5. feladat (Tagnyilvántartás) I részfeladat

Feladat

Ebben a részfeladatban azt kell meghatároznunk, hogy hányan laknak abban a városban, ahol a legtöbben laknak.

Példa

Javasolt megoldás:

Megoldási terv:

A megoldást két részre kell bontanunk:

Először meg kell határoznunk, hogy az egyes városokban hányan laknak.

Utána pedig meg kell néznünk, hogy ezek közül melyikben laknak a legtöbben.

Ezt figyelembe véve a fő lekérdezésünkhöz készíteni fogunk egy segédlekérdezést (allekérdezést) is.

Javasolt megoldás lépései:

  • Hozzunk létre egy lekérdezést Tervező nézetben!
  • Ebben a lekérdezésben számoljuk ki, hogy az egyes városokban hányan laknak. Ehhez szükségünk lesz a Varos, Irszam_varos és a Tag táblákra; adjuk hozzá ezeket a lekérdezéshez, majd jelenítsük meg a lekérdezésben a Varos tábla varoskod mezőjét, valamint a Tag tábla kod mezőjét. Ezután kattintsunk rá a szalagon az Összesítés gombra!
  • Mivel városonként szeretnénk kiszámítani a lakosok számát, ezért a varoskod mező Összesítés sorába állítsuk be a Group by záradékot, a kod mező Összesítés sorába pedig a Count összesítő függvényt. Nevezzük el ezt a mezőt Lakosok_számána!. A képernyőn ezt látjuk:
A kép (nagyobb változata) külön ablakban is megtekinthető.26_full.jpg26. ábra: A Tagnyilvántartás című feladat I részfeladatának allekérdezése
  • Zárjuk be a lekérdezést, és mentsük I_seged néven!
  • Hozzunk létre egy új lekérdezést Tervező nézetben!
  • Adjuk hozzá a lekérdezéshez az előbb létrehozott I_seged nevű lekérdezést!
A kép (nagyobb változata) külön ablakban is megtekinthető.27_full.jpg27. ábra: Az I_seged nevű lekérdezés felhasználása egy másik lekérdezés elkészítéséhez
  • Már csak egy dolog maradt hátra: meg kell határoznunk, hogy mennyien laknak abban a városban, ahol a legtöbben laknak. Az I_seged nevű lekérdezésben a Lakosok_száma mezőben tároljuk, hogy az egyes városokban hányan laknak. Adjuk hozzá a lekérdezéshez ezt a mezőt!
  • Kattintsunk a szalagon az Összesítés gombra, majd alkalmazzuk a Max összesítő függvényt a mezőre! Nevezzük el ezt a mezőt Maxnak! A Tervező nézetben most ezt kell látnunk:
A kép (nagyobb változata) külön ablakban is megtekinthető.28_full.jpg28. ábra: A Tagnyilvántartás című feladat I részfeladatának megoldása tervező nézetben
  • Váltsunk át Adatlap nézetre! Ha mindent jól csináltunk, akkor az eredmény egy darab szám.
  • Zárjuk be, és mentsük a lekérdezést I_LAKOSOK néven!

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.
Készült az "Országos koordinációval a pedagógusképzés megújításáért” című TÁMOP-4.1.2.B.2-13/1-2013-0007 pályázat keretében.

A tananyag az ELTESCORM keretrendszerrel készült