Kis HF 02 – Adatbázis lekérdezések (SQL)¶
Felkészülés és előkészületek¶
Nézd át a kapcsolódó labor és előadások anyagát.
Szoftverkörnyezet:
- Adatbázis szervernek MySQL-t használunk, mely része az XAMPP programcsomagnak.
- Az adatbázis kliensoldali kezeléséhez a MySQL Workbench-et használjuk.
A megírandó lekérdezések a kapcsolódó laboron létrehozott könyvtár adatbázist használják. Kövesd a labor útmutatóját (1. feladat) és hozd létre az adatbázist, mielőtt belekezdenél a lekérdezések megírásába!
Mindig új branchen dolgozz!
A laborokon, házi feladatokon, és a ZH-n mindig új branch-en (pl. "megoldas") dolgozz! Ez azért van így, mert a végén a munka végén a pull request létrehozásakor a kiinduló állapothoz (master branch) képest az új branch változtatásai fognak látszani. Vagyis így fogja látni a laborvezetőd, hogy min dolgoztál, mely fájlokban mi változott, és így fogja tudni értékelni is a munkádat. Ha nem így csinálod, az formai hibának számít, a ZH-n például ezért pontlevonás jár.
1. SQL lekérdezések (könnyű)¶
Készítd el az alábbi lekérdezéseket! Mindegyik feladathoz egy darab lekérdezést kell írni.
- Listázd ki a könytárban elérhető összes könyvet!
- Listázd ki azon tagok összes adatát, akik irányítószáma kisebb mint 2000!
- Listázd ki azon könyvek címét és megjelenési dátumát, amelyek 1999 előtt jelentek meg, ár szerinti csökkenő sorrendben!
- Listázd ki azon könyvek összes adatát, amelyeknek van leírása (vagyis nem üres)!
Beadandó (1 pont)
A lekérdezéseket írd bele a kiinduló repository gyökerében található query-1.sql fájlba, majd kommitolj.
2. SQL lekérdezések (közepes)¶
Készítd el az alábbi lekérdezéseket! Mindegyik feladathoz egy darab lekérdezést kell írni.
- Listázd ki minden könyv címét és szerzőik teljes nevét (vezetéknév és keresztnév egyben), akkor is, ha nincs az adott könyvhöz szerző megadva!
- Listázd ki minden tag nevét és a kölcsönzéseik számát, akkor is, ha még nem kölcsönöztek semmit!
- Listázd ki azon tagok minden adatát (de mindenkiét csak egyszer), akik legalább egy könyvet visszahoztak a határidő után!
- Listázd ki azon tagok teljes nevét, akiknél jelenleg van könyv, és ezeknek a könyveknek az átlagos ára nagyobb, mint 10 000 Ft. Add meg a kölcsönzött könyvek számát is!
Beadandó (1 pont)
A lekérdezéseket írd bele a kiinduló repository gyökerében található query-2.sql fájlba, majd kommitolj.
3. SQL lekérdezések (nehéz)¶
Készítd el az alábbi lekérdezéseket! Mindegyik feladathoz egy darab lekérdezést kell írni.
- Listázd ki azon könyvek címét, amelyeket legalább két különböző tag kölcsönzött ki!
- Listázd ki azon könyvek címét és árát, amelyek ára nagyobb, mint a magyar nyelvű könyvek átlagára!
- Listázd ki a legutóbb kikölcsönzött könyv címét és a kölcsönzés dátumát!
- Listázd ki azon tagok teljes nevét és a náluk lévő könyvek számát, akiknek a tagságija még érvényes, de van legalább egy könyv náluk, amely szerzői között magyar nemzetiségű is szerepel!
Tipp a 4. lekérdezéshez
Az aggregáló függvények paraméterében kifejezés is lehet, például a COUNT(tag.nev = 'Kiss Anna') megszámolja a 'Kiss Anna' előfordulásait a tag tábla név oszlopában.
Beadandó (1 pont)
A lekérdezéseket írd bele a kiinduló repository gyökerében található query-3.sql fájlba, majd kommitolj.
Beadás¶
Töltsd ki a kiinduló repositoryban található neptun.txt fájlt a Neptun kódoddal! Ezután a tanultaknak megfelelően készíts egy pull requestet és rendeld hozzá a laborvezetődet, mint reviewer!
Pull request elfogadása
Fontos, hogy semmiképpen ne kattints a "Merge pull request" gombra a GitHub felületén! Ez a laborvezetőd dolga, az értékelés után a változtatások bekerülnek majd a master branchre. Ha mergeled a módosításokat a laborvezetőd értékelése előtt, nem fogja látni, hogy mi változott, tehát a pull request értelmét veszti!