30. óra: Al- és segédlekérdezések ('tisztek' adatbázis)
A tisztek
nevû adatbázisban folytatjuk a tanulást. Új adatbázisunk egy
fiktív laktanya rendfokozattal rendelkezõ katonáinak adatait
tartalmazza (még a régi idõkbõl). 0.
feladat: Töltse le a home
könyvtárába a tisztek.sql fáljt!
(Jobb egér a linken/hivatkozás mentése másként...)
Indítson egy terminált, majd mportálja a tisztek adatbázist a
mysql-be!A parancs: barnabas@sir-kan:$
mysqldump -u erettsegi -p < tisztek.sql
|
Lépjen be az adatbáziskezelõbe! (mysql -u erettsegi -p, majd a jelszó)
Nyissa meg az tisztek adatbázist!
mysql>use tisztek;
Blablabla...
Database changed
mysql>
Blablabla...
Database changed
mysql>
Az adatbázisban két tábla van, nevük: tisztek és rang.
A tisztek tábla egy részlete (ön is lekérdezheti: select * from tisztek limit 5;):
+---------------+-----------------+-----------+---------------+-----------+------------------------------+---------+----------+
| Nev | Anyja | Lakohely | Rendfokozat | Kategoria | Beosztas | Fizetes | Szuletes |
+---------------+-----------------+-----------+---------------+-----------+------------------------------+---------+----------+
| Kiss Krisztián| Harcsa Virág | Kisoroszi | alezredes | tiszt | ezredparancsnok-helyettes | 269733 | 1961 |
| Zsákos Tamás | Halász Noémi | Nagymaros | õrnagy | tiszt | törzstiszt | 231884 | 1964 |
| Pécsi Ádám | Sólyom Gabriella| Szentendre| fõhadnagy | tiszt | osztályparancsnok-helyettes | 227311 | 1979 |
| Orosz Ubul | Oláh Regina | Budakalász| hadnagy | tiszt | ütegparancsnok | 198673 | 1980 |
| Halász Károly | Hegyes Eszter | Tahi | törzsõrmester | altiszt | szakaszparancsnok | 156627 | 1968 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| Nev | Anyja | Lakohely | Rendfokozat | Kategoria | Beosztas | Fizetes | Szuletes |
+---------------+-----------------+-----------+---------------+-----------+------------------------------+---------+----------+
| Kiss Krisztián| Harcsa Virág | Kisoroszi | alezredes | tiszt | ezredparancsnok-helyettes | 269733 | 1961 |
| Zsákos Tamás | Halász Noémi | Nagymaros | õrnagy | tiszt | törzstiszt | 231884 | 1964 |
| Pécsi Ádám | Sólyom Gabriella| Szentendre| fõhadnagy | tiszt | osztályparancsnok-helyettes | 227311 | 1979 |
| Orosz Ubul | Oláh Regina | Budakalász| hadnagy | tiszt | ütegparancsnok | 198673 | 1980 |
| Halász Károly | Hegyes Eszter | Tahi | törzsõrmester | altiszt | szakaszparancsnok | 156627 | 1968 |
| ... | ... | ... | ... | ... | ... | ... | ... |
Minden sor 8 adatot tartalmaz:
- Nev: a katona személy neve (típusa: szöveg);
- Anyja: a katona anyjának neve (típusa: szöveg);
- Lakohely: a település neve, ahol a katona lakik (típusa: szöveg);
- Rendfokozat: az illetõ rendfokozata (típusa: szöveg);
- Kategória: a rendfokozathoz tartozó kategória (típusa: szöveg);
- Beosztas: a katona szolgálati beosztása (típusa: szöveg);
- Fizetés: az illetõ havi fizetése (típusa: egész szám);
- Születés: a katona születésének éve (típusa: egész szám).
A rang tábla egy részlete (ön is lekérdezheti: select * from rang;):
+--------------------+---------+
| rendfokozat | sorszam |
+--------------------+---------+
| tizedes | 1 |
| szakaszvezetõ | 2 |
| õrmester | 3 |
| törzsõrmester | 4 |
| fõtörzsõrmester | 5 |
| ... | ... |
| rendfokozat | sorszam |
+--------------------+---------+
| tizedes | 1 |
| szakaszvezetõ | 2 |
| õrmester | 3 |
| törzsõrmester | 4 |
| fõtörzsõrmester | 5 |
| ... | ... |
Minden sor 2 adatot tartalmaz:
- rendfokozat: az adott rendfokozat megnevezése (típusa: szöveg);
- sorszam: az adott rendfokozat sorszáma: minél nagyobb, annál magasabb az adott rendfokozat (típusa: egész szám).
Feladatok
1. feladat: Készítsen
lekérdezést, amely kiírja hogy a "tábornok"-ok
hány %-át teszik ki a teljes létszámnak!
A parancs: ???
A parancs: ???
2.
feladat: Készítsen lekérdezést, amely kiírja hogy mennyi "tábornok"-ok
és a "tiszt"-ek
számának aránya. (Várhatóan egy 1-nél kisebb szám lesz az eredmény.)
A parancs: ???
A parancs: ???
3.1. feladat: Ki a "Budakalász"-on
lakó katonák közt a legmagasabb rendfokozatú? Adja meg a katona nevét,
rendfokozatát és a beosztását.
A parancs: ???
3.2 feladat: Településenként adja meg, hogy ki az adott településen lakó katonák közt a legmagasabb rendfokozatú (városparancsnok). Jelenjen meg a település neve, a katona neve, rendfokozata és beosztása.
A parancs: ???
A parancs: ???
3.2 feladat: Településenként adja meg, hogy ki az adott településen lakó katonák közt a legmagasabb rendfokozatú (városparancsnok). Jelenjen meg a település neve, a katona neve, rendfokozata és beosztása.
A parancs: ???
4.1.
feladat: Ki a legfiatalabb a "Budakalász"-on
lakó katonák közt? Adja meg a katona nevét, rendfokozatát, és azt, hogy
2000-ben mennyi idõs volt. (Ez utóbbi "kor" fejléccel jelenjen meg.)
A parancs: ???
4.2. feladat: Telepólésenként adja meg, hogy ki ott a legfiatalabb katona. Jelenjen meg a település neve, a katona neve, rednfokozata, beosztása és az, hogy a katona mennyi idõs volt 2000-ben. (Ez utóbbi "kor" fejléccel.)
A parancs: ???
A parancs: ???
4.2. feladat: Telepólésenként adja meg, hogy ki ott a legfiatalabb katona. Jelenjen meg a település neve, a katona neve, rednfokozata, beosztása és az, hogy a katona mennyi idõs volt 2000-ben. (Ez utóbbi "kor" fejléccel.)
A parancs: ???
5.1. feladat: Milyen
rendfokozatok fordulnak elõ a "Kóspallag"-on
lakók
közt? (Minden ilyen rendfokozat csak egyszer jelenjen meg a listában.)
A parancs: ???
5.2 feladat: Melyek azok a rendfokozatok, amik "Kóspallag"-on és "Pomáz"-on is elõfordulnak?
Megoldás: ???
A parancs: ???
5.2 feladat: Melyek azok a rendfokozatok, amik "Kóspallag"-on és "Pomáz"-on is elõfordulnak?
Megoldás: ???
6.1.
feladat: Mely beosztások fordulnak elõ a "Szob"-on
lakó katonák közt? Minden beosztás csak egyszer jelenjen meg.
A parancs: ???
6.2. feladat: Melyek azok a beosztások, amelyek a "Szob"-on és a "Tahi"-n lakó katonák közt is elõfordulnak? Minden beosztás csak egyszer jelenjen meg.
A parancs: ???
A parancs: ???
6.2. feladat: Melyek azok a beosztások, amelyek a "Szob"-on és a "Tahi"-n lakó katonák közt is elõfordulnak? Minden beosztás csak egyszer jelenjen meg.
A parancs: ???
7. feladat: Kinek
hány testvére van az adatbázisban szereplõ katonák közt? A listában csak
azok a katonák jelenjenek meg, akiknek legalább egy testvére van az
adatbázisban. Adja meg a katona nevét, rendfokozatát és testvérinek
számát ("testvérszám" fejléccel). Testvérnek tekintünk két katonát, ha
ugyanaz az anyjuk neve.
A parancs: ???
A parancs: ???
8.
feladat: Kik azok a katonák, akiknek van a laktanyában "vezérezredes"
rendfokozatú testvére?
A parancs: ???
A parancs: ???
9. feladat: Ki az a
testvérpár az adatbázisban, akik közt a legnagyobb a korkülönbség? .
(Testvérnek tekintünk két katonát, ha ugyanaz az anyjuk neve.)
Jelenjen meg a két katona neve, rendfokozata és a 2000-ben megért életkora.
A parancs: ???
Jelenjen meg a két katona neve, rendfokozata és a 2000-ben megért életkora.
A parancs: ???
10.
feladat: Adja meg, hogy az egyes rendfokozatokat viselõ
katonák közt ki a legidõsebb (rendfokozatonként)!
Jelenjen meg a rendfokozat, a legidõsebb katona neve és 2000-ben megért életkora!
Jelenjen meg a rendfokozat, a legidõsebb katona neve és 2000-ben megért életkora!
Jó munkát!