14. óra: Adatbázis-lekérdezések: Balatoni hajómenetrend I.

A balatoni hajók menetrendjét tárolja a Balaton nevû adatbázisunk.

Elõzetes teendõk

Töltse le az adatbázist tartalmazó balaton.sql fájlt a home (házikó) könyvtárába!
(Jobb egér/hivatkozás mentése más néven...)

Indítson egy fekete terminált! (Alt+Ctrl+T)
 
Az adatbázist fogjuk importálni.
A parancs:

mysql -u erettsegi -p < balaton.sql

Adja meg a jelszót, és ha nem jön hibaüzenet, folytatjuk.
(Ha hibaüzenet érkezne, akkor oldja meg valahogy, de addig ne menjen tovább!)
 
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.

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:

 

Feladatok

(A megoldásokban az SQL kulcsszavait nagybetûvel írom, hogy jobban kitûnjenek - de a valóságban kisbetûvel is jók.)

1. feladat: Készítsünk lekérdezést, mely kilistázza a G1 járat teljes menetrendjét!
 
A parancs: ???

A futás eredménye:

+-------+------------------+----------------+----------+----------+
| jarat | honnan           | hova           | indul    | erkezik  |
+-------+------------------+----------------+----------+----------+
| G1    | Balatonföldvár   | Balatonszemes  | 09:10:00 | 10:05:00 |
| G1    | Balatonszemes    | Balatonlelle   | 10:05:00 | 10:45:00 |
| G1    | Balatonlelle     | Balatonboglár  | 10:45:00 | 11:15:00 |
| G1    | Balatonboglár    | Badacsony      | 11:15:00 | 12:00:00 |
+-------+------------------+----------------+----------+----------+

Lajos a barátnõjét várja a siófoki hajóállomáson. Segítsünk Lajosnak
 
2. feladat: Készítsünk lekérdezést, mely megadja, mikor és honnan érkeznek hajók Siófokra!
 
A parancs: ???

A futás eredménye:

+----------+----------------+
| erkezik  | honnan         |
+----------+----------------+
| 12:20:00 | Csopak         |
| 18:50:00 | Balatonalmádi  |
| 12:45:00 | Balatonfüred   |
| 17:50:00 | Balatonfüred   |
| 19:50:00 | Balatonfüred   |
| 11:50:00 | Balatonfüred   |
| 15:50:00 | Balatonfüred   |
| 18:50:00 | Balatonfüred   |
| 10:50:00 | Balatonfüred   |
| 14:20:00 | Balatonfüred   |
+----------+----------------+

Egy nap nagy vihart jelez a viharjelzõ szolgálat Badacsony körzetében. A hajózási társaság törli az oda érkezõ, vagy onnan induló járatokat.
 
3. feladat: Készítsünk lekérdezést, mely kilistázza azokat a járatszámokat, amelyek érintik Badacsonyt.
 
A parancs: ???

Lajos hajókázni szeretne egy szép délutánon...
 
4. feladat: Listázzuk ki, hogy délután mikor, honnan és hova indulnak egyáltalán hajók!
 
A parancs: ???

Fejlesztéseket terveznek a kikötõkön, ezért felmérnénk, hogy melyik kikötõnek mekkora a forgalma.
 
5. feladat: Készítsen lekérdezést, mely megadja, hogy naponta hány hajó indul az egyes kikötõkbõl. A lista az indított hajók száma szerint csökkenõen rendezett legyen!
 
A parancs: ???

Lajos gyerekei hajókázni szeretnének... Ki is nézték a J1 járatot, mely Balatonkenesérõl Tihanyba megy...
 
6. feladat: Lekérdezés segítségével adja meg a "J1" járat teljes menetidejét. A menetidõ percben jelenjen meg!
 
A parancs: ???

A "J1" járatot Lajos túl hosszúnak, a gyerekek túl rövidnek tartják...
 
7. feladat: Listázzuk ki az egyes járatok teljes menetidejét! Csak a járat száma és a percben mért menetidõ jelenjen meg - ez utóbbi szerint csökkenõ sorrendben!
 
A parancs: ???

Nézzünk egy másik szempontot, mely egy járat hosszát méri! (Még mindig Lajosék...)
 
8. feladat: Lekérdezés segítségével adja meg, hogy az egyes járatok hány kikötõt érintenek útjuk során! A lista az érintett kikötõk száma szerint csökkenõ sorrendben legyen!
 
A parancs: ???

Jó munkát!