2023. április 21., péntek

2023.04.21. Tanösvény hf. ellenőrzése, ismétlés

Házi feladat: 

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.

Kedden az első órában még gyakorlunk, a második órában tz.


Tanösvény megoldás:

 

Tanösvény

 

A  tanösvény  kijelölt,  jelzéssel  ellátott  tematikus  túraútvonal, amelyen  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 (azon, nev, hossz, allomas, 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 lévő állomások száma (szám)

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

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.      A 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



2023. április 18., kedd

2023.04.18. Pizza, Tanösvény adatbázis feladatok - gyakorlás

 1 hét múlva témazáró várható.

A tanösvényes feladatot házi feladat befejezni.


Pizza

3.  Készítsen lekérdezést, amely ábécérendben sorolja fel a vegetáriánus pizzákat! Jelenítse meg a pizza nevét és kategóriáját!

 

SELECT nev, kategorianev

0,5

FROM pizza

WHERE vegetarianus like true

1

ORDER BY nev;

1

 

4.  Azoknak, akiknek a rendelését még 2005-ben felvette a cég, de csak 2006-ban szállították ki a pizzájukat,

  három pizzára szóló ajándékutalványt kaptak.

  Lekérdezéssel határozza meg a „nyertes” megrendelések azonosítóit!

 

SELECT  az  FROM rendeles

0,5

WHERE year(felvetel)=2005

1

AND year(kiszallitas)=2006;

1

 

SELECT  az  FROM rendeles

0,5

WHERE felvetel LIKE'2005%'

1

AND kiszallitas LIKE'2006%';

1

 

5.  Ildikó három darab, Magyaros pizzára szóló ajándékutalványt nyert.

  A Magyaros pizzát nem szereti, ezért elérte, hogy más,

  a Magyarossal azonos kategóriájú pizzát is választhasson.

  Készítsen lekérdezést, amely megadja a szóba jöhető pizzák nevét!

  A Magyaros pizzát ne jelenítse meg!

 

SELECT nev, kategorianev FROM pizza

0,5

WHERE kategorianev =

1

(SELECT kategorianev FROM pizza

1

  WHERE nev like 'Magyaros')

1

 and nev not LIKE 'Magyaros';

1

 

 

vagy önillesztéssel:

 

SELECT pizza.nev

0,5

FROM pizza, pizza as magyaros

WHERE pizza.kategorianev = magyaros.kategorianev

2

AND magyaros.nev = "Magyaros"

1

AND pizza.nev != "Magyaros"

1

 

 

 

6.  A cég minden nap meghatározza, hogy mely kategóriájú pizzákat adja

  kedvezményes áron.

  Minden nap az a kategória lesz olcsóbb,

  amelyre az előző napi utolsó rendelésfelvétel vonatkozott.

  Készítsen lekérdezést, amely megadja, hogy 2006. augusztus 20-án

  melyik pizzakategória volt kedvezményes!

 

SELECT pizza.kategorianev FROM rendeles

0,5

INNER JOIN pizza ON rendeles.pizzanev = pizza.nev

1

INNER JOIN kategoria ON pizza.kategorianev = kategoria.nev

WHERE felvetel like '2006-08-19'

1

ORDER by felvetel desc

1

LIMIT 1;

1

 

 

vagy:

 

SELECT kategorianev FROM rendeles

0,5

INNER JOIN pizza ON rendeles.pizzanev = pizza.nev

1

WHERE felvetel like '2006-08-19'

1

ORDER by felvetel desc

1

LIMIT 1;

1

 

7.  Készítsen lekérdezést, amely megadja, hogy az egyes pizzákból mennyi fogyott!

  Adja meg a kategória és a pizza nevét, valamint az eladott darabszámot,darabszám szerinti csökkenő rendben!

 

SELECT kategoria.nev, pizza.nev,

0,5

SUM(darab)

1

FROM rendeles

1

INNER JOIN pizza ON rendeles.pizzanev = pizza.nev

INNER JOIN kategoria ON pizza.kategorianev = kategoria.nev

GROUP BY 2

1

ORDER BY 3 DESC;

1

vagy

 

SELECT kategorianev, pizzanev,

0,5

SUM(darab)

1

FROM rendeles

1

INNER JOIN pizza ON rendeles.pizzanev = pizza.nev

GROUP BY 2

1

ORDER BY 3 DESC;

1

 

 


2023. április 14., péntek

2023.04.14. Ismétlés - Pizza adatbázis

 Jövő órán az utolsó feladattal befejezzük, utána megoldjuk a feladatsort.

Köv. órán sor kerül a projektmunkák előadásának befejezésére is.

2025.02.19.[helyettesítés] SQL feladatmegoldás - AI alapú önálló gyakorlás - 2. rész

A hétfői feladatsort újrahasznosítva most a Bolt adatbázist adjuk oda forrásként az AI-nak. A jövő héten pont ilyen feladatokból fogtok dol...