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

Minden sor 5 adatot tartalmaz:

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

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;

Az ENTER után valami ilyesmi fogad minket:

+--------------------+
| 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;

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: ???

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: ???
 

Idõadattal végzett mûveletek
 

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
 

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: ???

Jó munkát!