2023. április 22., szombat

2023.04.23. Hatoslottó, Színészek megoldás

 

 Hatoslottó

3.feladat

Készítsen lekérdezést, amely megadja, hogy az előző évszázadban (2001. január 1. előtti évszázad) mikor volt 5+1 találatos szelvény!

A húzáshoz tartozó évet és hetet, illetve a nyeremény értékét jelenítse meg időrendben (év, azon belül hét szerint)!

SELECT huzas.ev, huzas.het, nyeremeny.ertek

0,5

FROM huzas

1

INNER JOIN nyeremeny ON nyeremeny.huzasid = huzas.id

WHERE huzas.ev >= 1901 AND

0,5

huzas.ev <= 2000 AND

0,5

nyeremeny.talalat = 7

1

ORDER BY 1,2;

1

 

4.feladat

Készítsen lekérdezést, amely megmutatja a 2012-es heti nyeremények összesített értékét

(tehát hetente kell összesíteni).

Az összesítés mező neve „Heti össznyeremény” legyen.

 

SELECT huzas.het, SUM(nyeremeny.darab * nyeremeny.ertek)

1

 as 'Heti össznyeremény'

 

FROM huzas

1

 INNER JOIN nyeremeny ON nyeremeny.huzasid = huzas.id

WHERE huzas.ev like 2012

1

GROUP by huzas.het;

1

5.feladat

Készítsen lekérdezést, amely megadja: mikor fordult elő,

hogy a 45 a húzott számok között volt!

Az évszámot és a hét sorszámát adja meg!

SELECT ev, het

0,5

  FROM huzas

1

INNER JOIN huzott ON huzas.id = huzott.huzasid

where szam = 45;

1

6. feladat

Készítsen lekérdezést, amely megadja, hogy mely években volt számhúzás minden héten,

azaz évente legalább 52 alkalommal!

 

SELECT ev FROM huzas

0,5

GROUP by ev

1

HAVING COUNT(het) >= 52;

1

7. feladat:

Készítsen lekérdezést, amely megadja: mikor fordult elő, hogy az 1 és a 45 is a húzott számok között volt!

Az évszámot és a hét sorszámát adja meg!

 

select huzas.ev, huzas.het FROM huzas

0,5

    LEFT JOIN huzott ON huzott.huzasid = huzas.id

1

  where huzott.szam = 1 and

1

huzasid in

1

 (select huzasid FROM huzas

1

    INNER JOIN huzott ON huzott.huzasid = huzas.id

1

 where szam = 45);

1

8.feladat

Készítsen lekérdezést, amely megadja, hogy a XXI. század első évtizedében

(2001. január 1. – 2010. december 31.) évente mennyit fizettek ki nyereményként!

 Az évszámot és a kifizetett összeget jelenítse meg!

 

SELECT huzas.ev, SUM(nyeremeny.darab * nyeremeny.ertek)

1

as 'Éves össznyeremény'

 

  FROM huzas

1

INNER JOIN nyeremeny ON nyeremeny.huzasid = huzas.id

  WHERE huzas.ev > 2000

1

AND huzas.ev <= 2010

1

  GROUP BY huzas.ev;

1




Színészek

1.     Készítsen lekérdezést, amely kilistázza azokat a színészeket, akik elsőként, azaz 2000. augusztus 22-én kapták meg a Nemzet Színésze címet! Csak a neveket jelenítse meg – ábécérendben!

SELECT nev FROM szinesz

0,5

 WHERE valasztas = "2000.08.22."

1

 ORDER BY 1;

1

 

2.     Több színész nem a születési nevén lett ismert. Készítsen lekérdezést, amely megadja azokat, akiket nem a születési nevükön ismerünk! Mindkét nevet jelenítse meg!

SELECT nev, szuletesinev FROM szinesz

0,5

 WHERE szuletesinev NOT LIKE "";

1

 

3.     Készítsen lekérdezést, amely kilistázza, hogy melyik színész milyen elismerésben részesült! Az elismeréseket színészenként csoportosítva, azon belül időrendben jelenítse meg.

 

SELECT szinesz.nev, elismeres.megnevezes

0,5

FROM kapott

1

INNER JOIN szinesz

ON kapott.szineszid = szinesz.id

INNER JOIN elismeres

 ON kapott.elismeresid = elismeres.id

ORDER BY szinesz.nev,

1

kapott.ev;

1

 

4.     Készítsen lekérdezést, amely megadja, hogy mely kitüntetéseket nyert el egy-egy színész többször is! A színész nevét és az elismerés megnevezését jelenítse meg az elismerés megnevezése, azon belül a színész neve szerint!

SELECT szinesz.nev, elismeres.megnevezes

0,5

FROM kapott

1

 INNER JOIN szinesz

 ON kapott.szineszid = szinesz.id

INNER JOIN elismeres

 ON kapott.elismeresid = elismeres.id

GROUP BY szinesz.nev,elismeres.megnevezes

1

HAVING COUNT(kapott.elismeresid)>1;

1

order by megnevezes, nev

1

vagy:

HAVING COUNT(elismeres.megnevezes)>1;

5.     Készítsen lekérdezést, amely kilistázza az összes, adatbázisban szereplő színész nevét, és mindegyiküknél megadja, hogy mely évtől (csak az év) mely évig (csak az év) viselték a Nemzet Színésze címet! (Hiányzó dátum esetén utóbbi mező üres maradhat.) A megjelenítés sorrendjét a cím elnyerésének dátuma határozza meg!

SELECT nev, YEAR(valasztas),

1

 YEAR(elhunyt)

1

FROM szinesz

0,5 (select nev-vel együtt)

ORDER BY valasztas;

1

6.     Készítsen lekérdezést, amely megadja azoknak a színészeknek a nevét, akik 2011. január 1-jén viselték a Nemzet Színésze címet! Ha valakit éppen azon a napon választottak meg, vagy akkor hunyt el, szintén szerepeljen a listában! (Ügyeljen az elhunyt mező üres értékeinek jelentésére!)

SELECT nev  FROM szinesz

0,5

 WHERE szinesz.valasztas <= "2011.01.01." AND

1

(szinesz.elhunyt >= "2011.01.01."

1

OR

1

elhunyt is NULL);

1


2023. április 21., péntek

2023.04.21. Tanösvény

 Házi feladat: 

Befejezni a Tanösvényt.

Hatoslottó, Színészek - a forrásokat, feladatlapot magadnak feltöltötted.

Vasárnap reggel itt a blogban megjelenik a megoldás, ami alapján ellenőrizheted a munkádat, ha akarod.

Kedden együtt ellenőrizzük a Tanösvényeket, Hatoslottót, Színészeket.

Pénteken tz.


Tanösvény megoldás:

 

Tanösvény

 

 tanösvén kijelölt,  jelzéssel  ellátott  tematikus  raútvonal, amelye megismerhetők az érintett terület természeti értékei és kulturális öröksége. A Magyar Nemzeti Park Igazgatóságok   által   kialakított   tanösvények   adatai   állnak   rendelkezésünkre.

 

1.      Hozzon létre a lokális SQL szerveren tanosveny néven adatbázist! Az adatbázis alapértelmezett rendezési sorrendje a magyar szabályok szerinti legyen! Ha az Ön által választott SQL szervernél nem alapértelmezés az UTF-8 kódolás, akkor azt is állítsa be alapértelmezettnek az adatbázis létrehozásánál!

 

Tábla:

ut (azonnev, hosszallomas, ido, vezetes, telepulesid)

azon                   a tanösvény azonosítója (számláló), ez a kulcs

nev                     a tanösvény neve (szöveg)

hossz                  az útvonal hossza kilométerben (szám)

allomas              az útvonalon vő állomások száma (szám)

ido                      az útvonal bejárásához tervezett idő órában (sm)

vezetes                a tanösvényen van-e idegenvezetés (logikai)

telepulesid          a település azonosítója, amelyhez a tanösvény tartozik (szám)

 

telepules (id, nev, npid)

id                        a település azonosítója (szám), ez a kulcs

nev                     a település neve (szöveg)

npid                    a nemzeti park igazgatóság azonosítója, amelyhez a település tartozik

(szám)

 

np (id, nev)

id                        a nemzeti park igazgatóság azonosítója (szám), ez a kulcs

nev                     a nemzeti park igazgatóság neve (szöveg)

 


 

2.      tabla.sql és az adatok.sql állományok tartalmazzák a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futassa a lokális SQL szerveren elsőként a tabla.sql, majd az adatok.sql parancsfájlt.

A feladatok megoldására elkészített SQL parancsokat a megoldasok.sql állományba illessze be a feladatok végén jelzett zárójelben lévő sor alá!

 





 

3.

Készítsen lekérdezést, amely ábécérendben jeleníti meg

 a 10 kilométernél hosszabb tanösvények nevét!

 

SELECT nev FROM ut

0,5

 WHERE hossz > 10

1

ORDER BY nev;

1

 

4.

A legtöbb útvonalat oktatási célból alakították ki,

 így nevükben szerepel a „tan” szócska.

Azonban van néhány kivétel.

 Lekérdezés segítségével jelenítse meg

azoknak az útvonalaknak a nevét,

 amelyekben nem szerepel a „tan” szócska!

 

SELECT nev FROM ut

0,5

 WHERE nev NOT LIKE '%tan%';

1

 

5.

Lekérdezés segítségével írassa ki

annak a nemzeti park igazgatóságnak a nevét, amelyhez

a legkevesebb tanösvény tartozik!

Az igazgatóság nevét és hozzá tartozó tanösvények

számát adja meg!

 

SELECT np.nev, COUNT(azon) AS 'db'

1

FROM ut

1

INNER JOIN telepules ON telepules.id = ut.telepulesid

INNER JOIN np ON np.id = telepules.npid

GROUP BY np.nev

1

ORDER BY db

1

LIMIT 1;

1


 

6.

Lekérdezés segítségével listázza ki azoknak a településeknek

a nevét, amelyekhez egynél több tanösvény tartozik!

A listát a darabszám szerint csökkenően,

 a települések nevével együtt jelenítse meg!

 

SELECT telepules.nev, COUNT(ut.nev) AS 'utak'

1

FROM utak

1

INNER JOIN telepules ON telepules.id = ut.telepulesid

GROUP BY telepules.nev

1

HAVING COUNT(ut.nev) > 1

1

ORDER BY utak DESC;

1

 

7.

Lekérdezés segítségével listázza ki az „Aggtelek”-kel

 azonos nemzeti park igazgatósághoz

tartozó tanösvények nevét,

 településük nevét és bejárásuk idejét!

 

SELECT ut.nev, telepules.nev, ut.ido

0,5

FROM ut

1

INNER JOIN telepules ON telepules.id = ut.telepulesid

INNER JOIN np ON np.id = telepules.npid

WHERE np.nev LIKE '%Aggtelek%';

1

 

8.

Hosszabb és elmélyültebb sétát igényelnek azok a tanösvények,

 amelyekhez túravezetőt is felkérnek,

és emellett vagy hosszabbak 5 km-nél,

 vagy tíznél több állomásuk van.

Készítsen lekérdezést ezek nevéről,

hosszáról és az állomások számáról

hosszuk szerint csökkenő sorrendben!

 

SELECT nev, hossz, allomas FROM ut

0,5

WHERE vezetes = 1 AND

1

 (ut.hossz > 5 OR ut.allomas > 10)

0,5+0,5

ORDER BY ut.hossz DESC;

1


2024.04.25. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...