12. óra: Lekérdezések ('tisztek' adatbázis)

Egy 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:$ mysql -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>

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

Minden sor 8 adatot tartalmaz:

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

Minden sor 2 adatot tartalmaz:

 

Feladatok

A fehér dobozokban lévõ feladatokat itt megoldjuk, és késõbb kiteszem a megoldásokat ide a lapra.

1. feladat: Készítsen lekérdezést, amely kiírja hogy kik a "tábornok"-okat! (Ez egy Kategória.) A listában jelenjen a katona neve és rendfokozata!
 
A parancs: SELECT Nev, Rendfokozat FROM tisztek WHERE Kategoria="tábornok";

2. feladat: Készítsen lekérdezést, amely kiírja a "Budakalász"-i "hadnagy"-ok nevét és rendfokozatát. A lista a név szerint abc-sorrendben jelenjen meg!
 
A parancs: SELECT Nev, Rendfokozat FROM tisztek WHERE Lakohely="Budakalász" AND Rendfokozat="hadnagy" ORDER BY Nev;

3. feladat: Kik a "Budakalász"-on és a "Pomázon" lakó katonák? Jelenjen meg a név, a rendfokozat és a katona lakóhelye!
 
A parancs: SELECT Nev, Rendfokozat, Lakohely FROM tisztek
WHERE Lakohely="Budakalász" OR Lakohely="Pomáz";

4. feladat: Ki a legfiatalabb a "Kisoroszi"-ban 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: SELECT Nev, Rendfokozat, 2000-Szuletes as Kor FROM tisztek
WHERE Lakohely="Kisoroszi"
ORDER BY Kor LIMIT 1;

5. 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: SELECT DISTINCT Rendfokozat FROM tisztek WHERE Lakohely="Kóspallag";

6. feladat: Hány katona lakik az egyes településeken? Jelenjen meg a település neve, és az ott lekó katonák száma!
 
A parancs: SELECT Lakohely, COUNT(*) as Letszam FROM tisztek GROUP BY Lakohely;

7. feladat: Hány katona viseli az egyes rendfokozatokat? Jelenjen meg a rendfokozat és azt azt viselõk száma, ez utóbbi szerint csökkenõ sorrendben!
 
A parancs: ???

8. feladat: Ki a legmagasabb rendfokozatú katona "Kóspallag"-on? (Név, rendfokozat.)
 
A parancs: ???

9. feladat: Sorolja fel a Gábor nevû katonák teljes nevét és rendfokozatát!
 
A parancs: ???

10. feladat: Melyik katonának a legnagyobb a fizetése a "Szentendre"-i katonák közt?
 
A parancs: ???

Jó munkát!