4. óra: Balatoni hajómenetrend II. (A mysql függvényei, záradékai)
A balatoni hajók menetrendjét tárolja a Balaton nevû adatbázisunk.
Az adatbázisban egyetlen tábla van, neve: menetrend.A menetrend tábla egy részlete:
+-------+----------------+----------------+----------+----------+
| jarat | honnan | hova | indul | erkezik |
+-------+----------------+----------------+----------+----------+
| A1 | Siófok | Balatonalmádi | 09:30:00 | 10:30:00 |
| A2 | Balatonalmádi | Alsóörs | 10:35:00 | 11:10:00 |
| A2 | Alsóörs | Csopak | 11:10:00 | 11:40:00 |
| A2 | Csopak | Siófok | 11:40:00 | 12:20:00 |
| A3 | Siófok | Csopak | 16:00:00 | 16:45:00 |
| A3 | Csopak | Alsóörs | 16:45:00 | 17:15:00 |
| A3 | Alsóörs | Balatonalmádi | 17:15:00 | 17:45:00 |
| A4 | Balatonalmádi | Siófok | 17:50:00 | 18:50:00 |
| .. | ... | ... | ... | ... |
| jarat | honnan | hova | indul | erkezik |
+-------+----------------+----------------+----------+----------+
| A1 | Siófok | Balatonalmádi | 09:30:00 | 10:30:00 |
| A2 | Balatonalmádi | Alsóörs | 10:35:00 | 11:10:00 |
| A2 | Alsóörs | Csopak | 11:10:00 | 11:40:00 |
| A2 | Csopak | Siófok | 11:40:00 | 12:20:00 |
| A3 | Siófok | Csopak | 16:00:00 | 16:45:00 |
| A3 | Csopak | Alsóörs | 16:45:00 | 17:15:00 |
| A3 | Alsóörs | Balatonalmádi | 17:15:00 | 17:45:00 |
| A4 | Balatonalmádi | Siófok | 17:50:00 | 18:50:00 |
| .. | ... | ... | ... | ... |
Minden sor 5 adatot tartalmaz:
- honnan: a hajó indulási kikötõje (típusa: szöveg);
- hova: az érkezési kikötõ (típusa: szöveg);
- indul: az indulás ideje (óó:pp:ss formában);
- erkezik: az érkezés ideje (óó:pp:ss formában);
- jarat: összeköti azokat a meneteket, amelyeket
ugyanaz a hajó folytat.
Pl. a 2-3. sorban megjelenõ A2-es járat teljes útja:
Balatonalmádi -> Alsóörs -> Csopak -> Siófok
Elõzetes teendõk
-2. feladat: Lépjen
be a mysql felületbe!
A parancs: mysql -u erettsegi -p
(A parancs 'megszólítja' a mysql kiszolgálót, közli, hogy a felhasználónevünk 'erettsegi', és ígéretet tesz arra, hogy majd megadjuk a jelszót.)
A parancs: mysql -u erettsegi -p
(A parancs 'megszólítja' a mysql kiszolgálót, közli, hogy a felhasználónevünk 'erettsegi', és ígéretet tesz arra, hogy majd megadjuk a jelszót.)
Az ENTER utána gép kéri a jelszót. Ezt adja meg!
Ha sikerült, akkor a prompt (a kurzor elõtt álló szöveg) ez lesz:
mysql>
A kiszolgáló várja a parancsainkat...
-1. feladat: Kérdezzük
meg a kiszolgálót, hogy milyen adatbázisai vannak!
A parancs: show databases;
A parancs: show databases;
Az ENTER után valami ilyesmi fogad minket:
+--------------------+
| Database |
+--------------------+
| Balaton |
| information_schema |
| mysql |
| performance_schema |
| pisti |
| sys |
+--------------------+
| Database |
+--------------------+
| Balaton |
| information_schema |
| mysql |
| performance_schema |
| pisti |
| sys |
+--------------------+
A lényeg, hogy meglegyen, amit kerestünk: a Balaton adatbázis.
0. feladat: Vegyük
használatba a Balaton
adatbázist!
A parancs: use Balaton;
A parancs: use Balaton;
Az ENTER után a kiszolgáló válasza:
Database changed
A lényeg, hogy meglegyen, amit kerestünk: a Balaton adatbázis.
Feladatok
Ez a feladat még nem a függvényekrõl
szól... - most megoldjuk.
A honvédség mentési gyakorlatot tart 12-tõl 13 óráig a vizen. Ezért mindazokat a járatokat törölni kell, amik ebben az idõben a vizen lennének.
1.1. feladat: Készítsünk lekérdezést, amely kilistázza azokat a meneteket minden adatukkal, amelyek 12 és 13 óra között (beleértve a határokat is) kinn lennének a vizen!
A parancs: ???
1.2 feladat: Ugyanezen feladat most úgy oldandó meg, hogy csak a járatszámokat kell kiírnunk, és ügyelnünk kell arra, hogy minden járatszám csak egyszer jelenjen meg.
A parancs: ???
A honvédség mentési gyakorlatot tart 12-tõl 13 óráig a vizen. Ezért mindazokat a járatokat törölni kell, amik ebben az idõben a vizen lennének.
1.1. feladat: Készítsünk lekérdezést, amely kilistázza azokat a meneteket minden adatukkal, amelyek 12 és 13 óra között (beleértve a határokat is) kinn lennének a vizen!
A parancs: ???
1.2 feladat: Ugyanezen feladat most úgy oldandó meg, hogy csak a járatszámokat kell kiírnunk, és ügyelnünk kell arra, hogy minden járatszám csak egyszer jelenjen meg.
A parancs: ???
Szélsõértékek
A cég ellenõrei végiglátogatják a kikötõket, és szeretnének egy listát arról, hogy az egyes kikötõk személyzete legkésõbb hányra kell kiérjen a munkahelyére.
2.1. feladat: Készítsünk lekérdezést, mely megadja, hogy az egyes állomások mikor indítják az elsõ hajót?
A parancs: ???
2.2 feladat: Ha már így benne vagyunk, arról is kérnek listát az ellenõrök, hogy az egyes állomások mikor indítják az utolsó hajót?
A parancs: ???
A cég ellenõrei végiglátogatják a kikötõket, és szeretnének egy listát arról, hogy az egyes kikötõk személyzete legkésõbb hányra kell kiérjen a munkahelyére.
2.1. feladat: Készítsünk lekérdezést, mely megadja, hogy az egyes állomások mikor indítják az elsõ hajót?
A parancs: ???
2.2 feladat: Ha már így benne vagyunk, arról is kérnek listát az ellenõrök, hogy az egyes állomások mikor indítják az utolsó hajót?
A parancs: ???
Idõadattal végzett mûveletek
3.2. feladat: Módosítsuk az elõzõ lekérdezést úgy, hogy csak a legrövidebb menet jelenjen meg!
A parancs: ???
A Kovács család gyerekei
bagyon szeretnének 'hajókázni'. Kovács úr (az apa) szerint ez
egy elég unalmas dolog, tehát megpróbálja lebeszélni õket errõl
- gondolván, hogy majd egy idõ után lehetetlenül viselkednek a
hajón. (Ahonnan nincs hova menni...) Szeretne tehát egy minél rövidebb menetet keresni. Segítsünk neki! 3.1. feladat: Készítsünk lekérdezést arról, hogy az egyes menetek hány percig tartanak! Jelenjen meg, hogy az egyes menetek honnan hová mennek, mikor indulnak, és hány percig tartanak. A parancs: ??? Egy másik megoldás: ??? |
3.2. feladat: Módosítsuk az elõzõ lekérdezést úgy, hogy csak a legrövidebb menet jelenjen meg!
A parancs: ???
Sorokon átívelõ összeadás
Most tehát itt a lehetõség...
4.2. feladat: Módosítsuk az elõzõ lekérdezést úgy, hogy csak a leghosszabb menetidejû járat száma és menetideje jelenjen meg!
A parancs: ???
Színre lép Kovács
anyuka... A gyerekek nyafognak, hoy 'apa a legrövidebb útra vitt minket... brühühü'. Ezzel változott a feladat. 4.1. feladat: Listázzuk ki, hogy melyik járatnak mennyi a teljes menetideje (elejétõl a végéig)! Jelenjen meg a járat száma, és a menetidõ percben! A parancs: ??? |
Most tehát itt a lehetõség...
4.2. feladat: Módosítsuk az elõzõ lekérdezést úgy, hogy csak a leghosszabb menetidejû járat száma és menetideje jelenjen meg!
A parancs: ???
Megszámlálás
A gyerekek tovább nyafognak...
Szerintük az a legérdekesebb, amikor a hajó a kikötõben forgolódik.
5.1. feladat: Készítsünk lekérdezést, amely kilistázza az egyes járatokra azt, hogy hány kikötõt érintenek.
A parancs: ???
5.2 feladat: Módosítsuk a fenti lekérdezést úgy, hogy csak az a járatszám és érintett kikötõszám jelenik meg, amely ez utóbbi tekintetben maximális!
A parancs: ???
A gyerekek tovább nyafognak...
Szerintük az a legérdekesebb, amikor a hajó a kikötõben forgolódik.
5.1. feladat: Készítsünk lekérdezést, amely kilistázza az egyes járatokra azt, hogy hány kikötõt érintenek.
A parancs: ???
5.2 feladat: Módosítsuk a fenti lekérdezést úgy, hogy csak az a járatszám és érintett kikötõszám jelenik meg, amely ez utóbbi tekintetben maximális!
A parancs: ???
Jó munkát!