1. Szakkörök

Egy középiskola tanárai a tanév kezdetén szakköröket hirdetnek meg, majd a diákok ezekre a szakkörökre jelentkeznek. A meghirdetett szakkörök neve, a diákok néhány adata, valamint a diákok jelentkezései állnak rendelkezésünkre.

Feladatok

  1. Importálja be a mellékelt szöveges állományt az adatbázisába! szakkorok.sql

Táblák

diak (azon, nev, evfolyam, betujel)
    azon        A diák azonosítója (szám), ez a kulcs
    nev         A diák neve (szöveg)
    evfolyam    A diák évfolyama (szám)
    betujel     A diák osztályának betűjele (szöveg)

szakkor (azon, mk, nev, tanar)
    azon        A szakkör azonosítója (szám), ez a kulcs
    mk          A szakkört meghirdető tanári munkaközösség neve (szöveg)
    nev         A szakkör neve (szöveg); a szakkörök neve egyedi
    tanar       A szakkört tartó tanár neve (szöveg)

jelentkezes (azon, diakazon, szakazon)
    azon        A jelentkezés azonosítója (szám), ez a kulcs
    diakazon    A jelentkező diák azonosítója (szám)
    szakazon    A szakkör azonosítója, amelyre a diák jelentkezik (szám)

alt text

A tanárok az általuk tanított szakok szerint munkaközösségeket alkotnak. A szakkörök neve egyedi, tehát nincs két azonos nevű szakkör.

A diákok osztályait az évfolyam és a betűjel együtt azonosítja. Nincs az adatbázisban két azonos nevű, egy osztályba járó diák, és csak azokról a diákokról van adat, akik jelentkeztek valamilyen szakkörre. Egy-egy diák több szakkörre is jelentkezett, előfordul, hogy többre, mint amire majd a tanév során ténylegesen jár.

Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők szerepeljenek, felesleges mezőt ne jelenítsen meg!

  1. Készítsen lekérdezést, amely megadja a 10. évfolyam C osztályának szakkörre jelentkező tanulóinak a nevét ábécérendben! A listában minden név csak egyszer jelenjen meg!
  2. Készítsen lekérdezést, amely megadja azokat a szakköröket és az ezeket meghirdető tanárokat, amely szakkörök nevében szerepel a „programoz” vagy a „robotika” szórészlet!
  3. Készítsen lekérdezést, amely megadja azokat a szakköröket, amelyekre legalább 10-en jelentkeztek! A lekérdezés a szakkör nevét, a szakkört tartó tanár nevét, a meghirdető munkaközösséget, valamint a jelentkezők számát jelenítse meg!
  4. Készítsen lekérdezést, amely megadja azokat az osztályokat, amelyekből jelentkeztek a „Matematika” munkaközösséghez tartozó egyik szakkörre! A lista legyen az osztályok évfolyama, azon belül betűjel szerint rendezve, és a listában minden osztály csak egyszer jelenjen meg!
  5. Készítsen lekérdezést, amely megadja azon szakkörök nevét, amelyekre csak a 10. vagy a 11. évfolyamról jelentkeztek, és más évfolyamról nem!
  6. Készítsen lekérdezést, amely megadja „Beke Fanni” évfolyamtársai közül azokat, akikkel közös szakkörre jár! A lekérdezés jelenítse meg a szakkörök és a diákok nevét! A névsorban „Beke Fanni” neve ne jelenjen meg!
  7. Készítsen jelentést a „2. idegen nyelv” munkaközösség szakköreiről! A jelentést lekérdezéssel készítse elő! A jelentés legyen szakkörök szerint csoportosítva, és egy-egy szakkörnél a tanulók ábécérendben kövessék egymást! A lekérdezés jelenítse meg a szakkörök és a diákok nevét valamint a diák osztályát!
  8. Készítsen lekérdezést, amely megadja azt az osztályt, ahonnan a legtöbbféle szakkörre jelentkeztek a tanulók! A lekérdezés az osztály évfolyamát, betűjelét és a különböző szakkörök számát jelenítse meg! A megoldás során feltételezheti, hogy csak egy ilyen osztály van.

2. Album

Az arcfelismerő alkalmazások elterjedésével a fotóalbumok is jól rendszerezhetők. Egy családi digitális képgyűjtemény és a család tagjainak néhány adata áll rendelkezésre az album.sql állományban.

Táblák

fenykep (id, evszam, szines, meret_x, meret_y)
    id          A digitális kép azonosítója (szám), ez a kulcs
    evszam      A fotó készítési éve (szám)
    szines      A kép színes-e (logikai). Fekete-fehér képnél hamis és színesnél igaz.
    meret_x     A kép szélessége képpontban (szám)
    meret_y     A kép magassága képpontban (szám)

kapcsolo (fenyid, szemid)
    fenyid      A fotó azonosítója (szám), az összetett kulcs része
    szemid      A képen felismert személy azonosítója (szám), az összetett kulcs része

szemely (id, nev, szulev)
    id          A személy azonosítója (szám), ez a kulcs
    nev         A személy neve (szöveg), családtag esetén egyedi keresztnév, 
                különben nem kitöltött
    szulev      A személy születési éve (szám), családtagon kívüli személy esetén nem kitöltött

alt text

Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők szerepeljenek!
Felesleges mezőt és rekordot ne jelenítsen meg!

Feladat

  1. Importálja be a mellékelt szöveges állományt az adatbázisába! album.sql
  2. A színes képek a legelterjedtebbek a fotózásban, de művészi képeket ma is fekete-fehérben készítenek sokszor. Készítsen lekérdezést, amely évszám szerinti csökkenő sorrendben megjeleníti a fekete-fehér képek évszámát, szélességét és magasságát!
  3. Készítsen lekérdezést, amely a „Vince” nevű családtag fotóit sorolja fel! A listában a fénykép azonosítója, Vince életkora a fotón, és a kép mérete, azaz a kép szélességének és magasságának szorzata jelenjen meg!
  4. Lekérdezés segítségével sorolja fel azoknak a fényképeknek az azonosítóját és készítés évét, amelyen szerepel olyan családtag, aki a fénykép készítésének évében született! A listában többször szerepelhet az a kép, amelyen több ilyen családtag van!
  5. Határozza meg lekérdezés segítségével annak a fotónak az azonosítóját és készítési évét, amelyen a legtöbb ember látható! Ha több ugyanannyit tartalmazó van, akkor mindet megjelenítheti.
  6. A családtagok egyéni fotói mindig érdekesek. Szeretnénk listázni azokat a képeket,
    amelyeken valamelyik családtag egyedül szerepel. Az ilyen képek azonosítója és a képen szereplő családtag neve jelenjen meg!
  7. Matyi Anna unokája. Készítsen lekérdezést, amely felsorolja azokat a fotókat, amelyen mind a ketten szerepelnek! A listában a fénykép azonosítója, és a kép készítési ideje jelenjen meg!
  8. Készítsen jelentést, amely évente kilistázza, hogy melyik családtag hány fotón szerepel!
    A jelentés legyen év szerint csoportosítva és jelenítse meg az évet a családtag nevét és a daraszámot.

3. Alvás

Az alvás fontos szerepet játszik a test, különösen a csontok fejlődésében. A kevés alvás negatív hatással van a gyermekek növekedésére,
ezért nem szabad engedni a kísértésnek, és hagyni, hogy a gyermek sokáig fennmaradjon és ne aludja ki magát. Az iskoláskor kezdetén a napi alvásszükséglet 10-11 óra.

Az egyik elsős osztályban a tanév végéhez közeledve a tanítónéni azt tapasztalta, hogy sok kisdiák egész délelőtt ásítozik, ezért megkérte a szülőket, hogy a következő tanévben a tanítási napokon jegyezzék fel, hogy előző este mikor feküdt le gyermekük és aznap mikor kelt fel.

Rendelkezésünkre állnak a 2022/23-as tanév szeptemberének adatai.

Táblák

diakok (id, nev, fiu, szuldatum)
    id              A diák azonosítója (szám), ez a kulcs
    nev             A diák neve (szöveg), a nevek egyediek
    fiu             A diák fiú-e (logikai), értéke igaz, ha fiú, hamis, ha lány
    szuldatum       A diák születési dátuma (dátum)

alvas (id, diakid, datum, lefekves, felkeles) – minden diák kapcsán minden tanítási napra   
                                            vonatkozó adat rendelkezésre áll 2022 szeptemberéből.
    id          Az alvás azonosítója (szám), ez a kulcs
    diakid      A diák azonosítója (szám)
    datum       Annak a napnak a dátuma, amikor ébredt a diák (dátum)
    lefekves    Az előző esti lefekvés időpontja (idő), minden diák minden nap éjfél előtt feküdt 
                le
    felkeles    A felkelés időpontja (idő), minden diák minden nap éjfél után kelt fel

naptar (datum, melynap) – a naptár csak 2022 szeptemberének napjait tartalmazza.
    datum       A naptári nap dátuma (dátum), ez a kulcs.
    melynap     A hét napjának azonosítója (szám), értéke hétfő esetén 1, kedd esetén 2,    
                ..., vasárnap esetén pedig 7

Feladatok

Ügyeljen arra, hogy a megoldásban pontosan a kívánt mezők szerepeljenek!

  1. Importálja be a mellékelt szöveges állományt az adatbázisába! alvas.sql
  2. Lekérdezés segítségével listázza ki a lányok nevét ábécérendben!
  3. Készítsen lekérdezést, amely megadja, hogy hány hétvégi nap (szombat, vasárnap) szerepel a naptárban!
  4. Ebben az iskolában az első szülői értekezletet mindig szeptember második keddjén tartják. Készítsen lekérdezést, amely megadja ennek dátumát! A megoldást úgy készítse el, hogy
    helyes eredményt adjon akkor is, ha a naptar tábla más év szeptemberének adatait
    tartalmazza!
  5. Van legalább egy diák, akinek a vizsgált időszakban tanítási napra esett a születésnapja. Készítsen lekérdezést, amely megadja, hogy hánykor feküdtek le a születésnapos diákok a születésnapjukon! A diák nevét és a lefekvés időpontját jelenítse meg!
  6. Határozza meg lekérdezés segítségével, hogy hány órát aludtak az egyes diákok átlagosan! Jelenítse meg azon diákok nevét és átlagos alvási idejét, akik még 8 órányit sem aludtak átlagosan! Az eredményt nem kell kerekítenie. A kiszámításban segítségére lehet, ha az alvásidőt lefekvéstől éjfélig, majd éjféltől a felkelésig számolja ki két részletben.
  7. Készítsen lekérdezést, amely megadja annak nevét, aki mindig korábban kelt, mint Nagy Petra!
  8. Szeretnénk megtudni, hogy ki az a diákok között, akinél pontosan annyi fiatalabb van, mint idősebb. Az alábbi lekérdezés erre a kérdésre válaszol. Egészítse ki a kérdőjelek helyén a lekérdezést!
SELECT diakok.nev FROM diakok, (SELECT d.id, Count(*) AS letszam FROM diakok AS d, diakok AS d2 WHERE d.szuldatum ??? d2.szuldatum GROUP BY d.id) ???, (SELECT d.id, Count(*) ??? FROM diak AS d, diakok AS d2 WHERE d.szuldatum>d2.szuldatum GROUP BY d.id) AS elotte WHERE diakok.id=utana.id AND diakok.id=elotte.id AND elotte.letszam ??? utana.???