Ülesanne 5-Andmetabeli toomine varundusfailist-erinevad päringud (0)
1. Kopeeri fail ABSynnid.sql oma peakausta ikt.khk.ee serveris.
2. Tee aktiivseks oma andmebaas AB ja anna käsk source ABSynnid.sql . Mis
toimus?
3. Millised tabelid tekkisid juurde? Kirjelda tekkinud tabeli välju ja
andmetüüpe (kasuta sobivat käsku). Missugune väli on primaarvõtme väli,
võõrvõtmeväli? Uuri lisaks ER-mudelit. mis on lisatud ülesande juhendile.
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_eensaara_AB |
+-----------------------+
| EMAD |
| LAENUTUS |
| LUGEJA |
| RAAMAT |
| SYNNID |
+-----------------------+
5 rows in set (0.00 sec)
mysql> DESCRIBE EMAD;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Ema_id | int(2) | NO | PRI | 0 | |
| Ema_nimi | varchar(20) | YES | | NULL | |
| Vanus | int(2) | YES | | NULL | |
| Laste_arv | int(1) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> DESCRIBE SYNNID;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| Synnikuupaev | varchar(10) | YES | | NULL | |
| Ema_id | int(2) | YES | MUL | NULL | |
| L_nimi | varchar(9) | YES | | NULL | |
| Elukoht | varchar(10) | YES | | NULL | |
| Synniaeg | varchar(5) | YES | | NULL | |
| Synnikaal | int(4) | YES | | NULL | |
| Synnipikkus | int(2) | YES | | NULL | |
| Sugu | varchar(1) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
4. Leia lapsed, kelle sünnikaal on väiksem võrdne 3800 grammist. Väljasta
nimi ja kaal.
mysql> SELECT L_nimi, Synnikaal FROM SYNNID WHERE Synnikaal<=3800;
+-----------+-----------+
| L_nimi | Synnikaal |
+-----------+-----------+
| Richard | 2385 |
| Ralf | 3736 |
| Karolin | 3538 |
| Liisi | 2920 |
| Kaur | 2610 |
| Rasmus | 2462 |
| Ramona | 2473 |
| Otto | 3148 |
| Konrad | 2652 |
| Karola | 3545 |
| Sten | 3740 |
| Heike | 3450 |
| Aneteliis | 3290 |
| Kelly | 3250 |
| Sander | 3330 |
| Marten | 3756 |
| Bairon | 2710 |
| Inga | 3056 |
| Sebastian | 2818 |
| Jaan | 3496 |
| Elis | 2760 |
| Heleriin | 3398 |
| Melani | 3150 |
| Joosep | 3460 |
| Kaidro | 3670 |
| Rasmus | 3670 |
| Jessika | 3670 |
| Prank | 3166 |
| Lars | 3090 |
| Oliver | 3640 |
| Kelli | 3540 |
| Karina | 3400 |
| Lisandra | 3186 |
| Tanel | 3104 |
| Emil | 3410 |
| Merike | 3800 |
| Rita | 3778 |
+-----------+-----------+
37 rows in set (0.00 sec)
5. Leia lapsed, kelle sünnikaal on 3330 grammist kuni 4000 grammini. (Too
kaks lahendust) Väljasta nimi ja kaal.
mysql> SELECT L_nimi, Synnikaal FROM SYNNID WHERE Synnikaal BETWEEN 3300 AND
4000;
+-----------+-----------+
| L_nimi | Synnikaal |
+-----------+-----------+
| Ralf | 3736 |
| Karolin | 3538 |
| Karola | 3545 |
| Sten | 3740 |
| Steven | 3850 |
| Heike | 3450 |
| Sander | 3330 |
| Marten | 3756 |
| Jaan | 3496 |
| Heleriin | 3398 |
| Joosep | 3460 |
| Sebastian | 3876 |
| Kaidro | 3670 |
| Rasmus | 3670 |
| Jessika | 3670 |
| Oliver | 3640 |
| Kelli | 3540 |
| Karina | 3400 |
| Maria | 3986 |
| Gregori | 3910 |
| Merike | 3912 |
| Emil | 3410 |
| Merike | 3800 |
| Rita | 3778 |
+-----------+-----------+
24 rows in set (0.00 sec)
6. Leia lapsed, kelle eesnimi algab sõnaga Meri. Väljasta lapse nimi.
mysql> SELECT L_nimi AS 'Lapse nimi' FROM SYNNID WHERE L_nimi LIKE 'Meri%';
+------------+
| Lapse nimi |
+------------+
| Meribel |
| Merike |
| Merike |
+------------+
3 rows in set (0.00 sec)
7. Leia lapsed, kes on sündinud Tartus või Tallinnas ja kelle sünnipikkus on
vähemalt 50 sentimeetrit. Väljasta lapse nimi, pikkus ja elukoht.
mysql> SELECT L_nimi, Synnipikkus, Elukoht FROM SYNNID WHERE (Elukoht='Tartu'
OR Elukoht='Tallinn') AND Synnipikkus>=50;
+-----------+-------------+---------+
| L_nimi | Synnipikkus | Elukoht |
+-----------+-------------+---------+
| Ralf | 50 | Tallinn |
| Karolin | 51 | Tallinn |
| Otto | 50 | Tallinn |
| Konrad | 50 | Tallinn |
| Sten | 51 | Tartu |
| Steven | 52 | Tartu |
| Heike | 50 | Tallinn |
| Kelly | 50 | Tallinn |
| Rihard | 52 | Tallinn |
| Sander | 50 | Tallinn |
| Marten | 51 | Tallinn |
| Jaan | 51 | Tallinn |
| Heleriin | 51 | Tartu |
| Andres | 53 | Tallinn |
| Sebastian | 52 | Tallinn |
| Kaidro | 53 | Tallinn |
| Rasmus | 52 | Tallinn |
| Ralf | 52 | Tallinn |
| Jessika | 53 | Tallinn |
| Prank | 53 | Tallinn |
| Lars | 50 | Tartu |
| Oliver | 50 | Tartu |
| Marelle | 51 | Tallinn |
| Kelli | 52 | Tallinn |
| Karina | 51 | Tartu |
| Maria | 51 | Tallinn |
| Marinel | 51 | Tallinn |
| Gregori | 51 | Tallinn |
| Mirell | 54 | Tallinn |
| Merike | 53 | Tallinn |
| Emil | 50 | Tartu |
| Marek | 51 | Tallinn |
| Rita | 52 | Tallinn |
+-----------+-------------+---------+
33 rows in set (0.01 sec)
8. Leia kõik erinevad laste nimed (kasuta DISTINCT'i), järjesta nimed a-st z-
ni.
mysql> SELECT DISTINCT L_nimi AS 'Erinevad laste nimed' FROM SYNNID ORDER BY
L_nimi ASC;
+----------------------+
| Erinevad laste nimed |
+----------------------+
| Andres |
| Aneteliis |
| Bairon |
| Elis |
| Emil |
| Gregori |
| Heike |
| Heleriin |
| Inga |
| Jaan |
| Jessika |
| Joosep |
| Kaidro |
| Karina |
| Karola |
| Karolin |
| Kaur |
| Kelli |
| Kelly |
| Konrad |
| Lars |
| Liisi |
| Lisandra |
| Lysandra |
| Marek |
| Marelle |
| Maria |
| Marinel |
| Marten |
| Melani |
| Meribel |
| Merike |
| Mirell |
| Oliver |
| Otto |
| Prank |
| Ralf |
| Ramona |
| Rasmus |
| Richard |
| Rihard |
| Rita |
| Sander |
| Sebastian |
| Sten |
| Steven |
| Tanel |
+----------------------+
47 rows in set (0.00 sec)
9. Leia lapsed, kelle nimi ei alga E-tähega ja kes ei ela Tartus. Väljasta lapse
nimi ja elukoht.
mysql> SELECT L_nimi, Elukoht FROM SYNNID WHERE (L_nimi !='%E' AND Elukoht !=
'Tartu');
+-----------+------------+
| L_nimi | Elukoht |
+-----------+------------+
| Richard | Tallinn |
| Ralf | Tallinn |
| Karolin | Tallinn |
| Liisi | Tallinn |
| Kaur | Tallinn |
| Rasmus | Keila |
| Ramona | Tallinn |
| Otto | Tallinn |
| Konrad | Tallinn |
| Karola | Helsingi |
| Heike | Tallinn |
| Lysandra | Tyri |
| Kelly | Tallinn |
| Rihard | Tallinn |
| Sander | Tallinn |
| Marten | Tallinn |
| Inga | Tallinn |
| Sebastian | Tallinn |
| Jaan | Tallinn |
| Elis | Tallinn |
| Andres | Tallinn |
| Melani | Paide |
| Joosep | Viljandi |
| Sebastian | Tallinn |
| Kaidro | Tallinn |
| Rasmus | Tallinn |
| Ralf | Tallinn |
| Jessika | Tallinn |
| Prank | Tallinn |
| Marelle | Tallinn |
| Kelli | Tallinn |
| Maria | Tallinn |
| Marinel | Tallinn |
| Lisandra | Kuressaare |
| Gregori | Tallinn |
| Mirell | Tallinn |
| Meribel | Paide |
| Merike | Tallinn |
| Tanel | Tallinn |
| Marek | Tallinn |
| Merike | Paide |
| Rita | Tallinn |
+-----------+------------+
42 rows in set (0.00 sec)
10. Väljasta laste sünnikaalud järgmisel kujul nt Juku 3kg 410grammi.
mysql>
SELECT
L_nimi,
CONCAT(LEFT(Synnikaal,1),'kg','
',RIGHT(Synnikaal,3),'gr') AS 'Synnikaalud' FROM SYNNID;
+-----------+-------------+
| L_nimi | Synnikaalud |
+-----------+-------------+
| Richard | 2kg 385gr |
| Ralf | 3kg 736gr |
| Karolin | 3kg 538gr |
| Liisi | 2kg 920gr |
| Kaur | 2kg 610gr |
| Rasmus | 2kg 462gr |
| Ramona | 2kg 473gr |
| Otto | 3kg 148gr |
| Konrad | 2kg 652gr |
| Karola | 3kg 545gr |
| Sten | 3kg 740gr |
| Steven | 3kg 850gr |
| Heike | 3kg 450gr |
| Aneteliis | 3kg 290gr |
| Lysandra | 4kg 040gr |
| Kelly | 3kg 250gr |
| Rihard | 4kg 140gr |
| Sander | 3kg 330gr |
| Marten | 3kg 756gr |
| Bairon | 2kg 710gr |
| Inga | 3kg 056gr |
| Sebastian | 2kg 818gr |
| Jaan | 3kg 496gr |
| Elis | 2kg 760gr |
| Heleriin | 3kg 398gr |
| Andres | 4kg 345gr |
| Melani | 3kg 150gr |
| Joosep | 3kg 460gr |
| Sebastian | 3kg 876gr |
| Kaidro | 3kg 670gr |
| Rasmus | 3kg 670gr |
| Ralf | 4kg 842gr |
| Jessika | 3kg 670gr |
| Prank | 3kg 166gr |
| Lars | 3kg 090gr |
| Oliver | 3kg 640gr |
| Marelle | 4kg 100gr |
| Kelli | 3kg 540gr |
| Karina | 3kg 400gr |
| Maria | 3kg 986gr |
| Marinel | 4kg 062gr |
| Lisandra | 3kg 186gr |
| Gregori | 3kg 910gr |
| Mirell | 4kg 080gr |
| Meribel | 4kg 040gr |
| Merike | 3kg 912gr |
| Tanel | 3kg 104gr |
| Emil | 3kg 410gr |
| Marek | 4kg 600gr |
| Merike | 3kg 800gr |
| Rita | 3kg 778gr |
+-----------+-------------+
51 rows in set (0.00 sec)
11. Väljastage laste nimed, sünniajad koos nädalapäevaga, millal nad
sündisid. (uuri kuupäeva funktsioone)
nt Juku Reede 17. september 2010 (päev ja kuu võivad olla inglise keeles)
mysql>
SELECT
L_nimi,
CONCAT(DAYNAME(Synnikuupaev),'
',
DAYOFMONTH(Synnikuupaev),'.', MONTHNAME(Synnikuupaev),' ', YEAR(Synnikuupaev))
AS Synnipaev FROM SYNNID;
+-----------+---------------------------+
| L_nimi | Synnipaev |
+-----------+---------------------------+
| Richard | Monday 15.January 2007 |
| Ralf | Saturday 27.January 2007 |
| Karolin | Saturday 27.January 2007 |
| Liisi | Sunday 28.January 2007 |
| Kaur | Sunday 28.January 2007 |
| Rasmus | Sunday 28.January 2007 |
| Ramona | Tuesday 30.January 2007 |
| Otto | Wednesday 31.January 2007 |
| Konrad | Wednesday 31.January 2007 |
| Karola | Wednesday 31.January 2007 |
| Sten | Thursday 1.February 2007 |
| Steven | Saturday 3.February 2007 |
| Heike | Sunday 4.February 2007 |
| Aneteliis | Monday 5.February 2007 |
| Lysandra | Tuesday 6.February 2007 |
| Kelly | Wednesday 7.February 2007 |
| Rihard | Friday 9.February 2007 |
| Sander | Friday 9.February 2007 |
| Marten | Saturday 10.February 2007 |
| Bairon | Saturday 10.February 2007 |
| Inga | Saturday 10.February 2007 |
| Sebastian | Saturday 10.February 2007 |
| Jaan | Sunday 11.February 2007 |
| Elis | Sunday 11.February 2007 |
| Heleriin | Sunday 11.February 2007 |
| Andres | Monday 12.February 2007 |
| Melani | Monday 12.February 2007 |
| Joosep | Monday 12.February 2007 |
| Sebastian | Tuesday 13.February 2007 |
| Kaidro | Tuesday 13.February 2007 |
| Rasmus | Tuesday 13.February 2007 |
| Ralf | Thursday 15.February 2007 |
| Jessika | Thursday 15.February 2007 |
| Prank | Friday 16.February 2007 |
| Lars | Friday 16.February 2007 |
| Oliver | Saturday 17.February 2007 |
| Marelle | Saturday 17.February 2007 |
| Kelli | Monday 19.February 2007 |
| Karina | Tuesday 20.February 2007 |
| Maria | Tuesday 20.February 2007 |
| Marinel | Tuesday 20.February 2007 |
| Lisandra | Thursday 22.February 2007 |
| Gregori | Saturday 24.February 2007 |
| Mirell | Monday 26.February 2007 |
| Meribel | Tuesday 27.February 2007 |
| Merike | Tuesday 27.February 2007 |
| Tanel | Tuesday 27.February 2007 |
| Emil | Friday 2.March 2007 |
| Marek | Sunday 4.March 2007 |
| Merike | Thursday 8.March 2007 |
| Rita | Friday 9.March 2007 |
+-----------+---------------------------+
51 rows in set (0.00 sec)
12. Väljasta laste nimed ja nädalapäevad (eesti keeles), millal nad sündisid
kasuta
funktsiooni
if()
või case().
mysql> SELECT L_nimi, CASE DAYNAME(Synnikuupaev) WHEN'Monday' THEN 'Esmaspev'
WHEN 'Tuesday' THEN 'Teisipev' WHEN 'Wednesday' THEN 'Kolmapev' WHEN
'Thursday' THEN 'Neljapev' WHEN 'Friday' THEN 'Reede' WHEN 'Saturday' THEN
'Laupev' WHEN 'Sunday' THEN 'Phapev' END AS Synnipaev FROM SYNNID;
+-----------+-----------+
| L_nimi | Synnipaev |
+-----------+-----------+
| Richard | Esmaspev |
| Ralf | Laupev |
| Karolin | Laupev |
| Liisi | Phapev |
| Kaur | Phapev |
| Rasmus | Phapev |
| Ramona | Teisipev |
| Otto | Kolmapev |
| Konrad | Kolmapev |
| Karola | Kolmapev |
| Sten | Neljapev |
| Steven | Laupev |
| Heike | Phapev |
| Aneteliis | Esmaspev |
| Lysandra | Teisipev |
| Kelly | Kolmapev |
| Rihard | Reede |
| Sander | Reede |
| Marten | Laupev |
| Bairon | Laupev |
| Inga | Laupev |
| Sebastian | Laupev |
| Jaan | Phapev |
| Elis | Phapev |
| Heleriin | Phapev |
| Andres | Esmaspev |
| Melani | Esmaspev |
| Joosep | Esmaspev |
| Sebastian | Teisipev |
| Kaidro | Teisipev |
| Rasmus | Teisipev |
| Ralf | Neljapev |
| Jessika | Neljapev |
| Prank | Reede |
| Lars | Reede |
| Oliver | Laupev |
| Marelle | Laupev |
| Kelli | Esmaspev |
| Karina | Teisipev |
| Maria | Teisipev |
| Marinel | Teisipev |
| Lisandra | Neljapev |
| Gregori | Laupev |
| Mirell | Esmaspev |
| Meribel | Teisipev |
| Merike | Teisipev |
| Tanel | Teisipev |
| Emil | Reede |
| Marek | Phapev |
| Merike | Neljapev |
| Rita | Reede |
+-----------+-----------+
51 rows in set (0.01 sec)
13. Leia laste keskmised sünnikaalud elukohtade järgi. Väljasta elukohad ja
sünnikaalud.
mysql> SELECT Elukoht, AVG(Synnikaal) AS 'Laste keskmine synnikaal' FROM
SYNNID GROUP BY Elukoht;
+------------+--------------------------+
| Elukoht | Laste keskmine synnikaal |
+------------+--------------------------+
| Helsingi | 3545.0000 |
| Keila | 2462.0000 |
| Kuressaare | 3186.0000 |
| Paide | 3663.3333 |
| Tallinn | 3524.3824 |
| Tartu | 3392.0000 |
| Tyri | 4040.0000 |
| Viljandi | 3460.0000 |
+------------+--------------------------+
8 rows in set (0.00 sec)
14. Väljasta laste nimed, sünnikaalud kilogrammides, sünnipikkused
meetrites. Tabeli päises nimeta väljanimed vastavalt ümber.
mysql> SELECT L_nimi, CONCAT(LEFT(Synnikaal,1),'.', RIGHT(Synnikaal,3),'kg')
AS 'Synnikaalud kilokrammides', CONCAT('0.', LEFT(Synnipikkus,2),' m') AS
'Synnipikkus meetrites' FROM SYNNID;
+-----------+---------------------------+-----------------------+
| L_nimi | Synnikaalud kilokrammides | Synnipikkus meetrites |
+-----------+---------------------------+-----------------------+
| Richard | 2.385kg | 0.46 m |
| Ralf | 3.736kg | 0.50 m |
| Karolin | 3.538kg | 0.51 m |
| Liisi | 2.920kg | 0.48 m |
| Kaur | 2.610kg | 0.46 m |
| Rasmus | 2.462kg | 0.47 m |
| Ramona | 2.473kg | 0.47 m |
| Otto | 3.148kg | 0.50 m |
| Konrad | 2.652kg | 0.50 m |
| Karola | 3.545kg | 0.50 m |
| Sten | 3.740kg | 0.51 m |
| Steven | 3.850kg | 0.52 m |
| Heike | 3.450kg | 0.50 m |
| Aneteliis | 3.290kg | 0.49 m |
| Lysandra | 4.040kg | 0.51 m |
| Kelly | 3.250kg | 0.50 m |
| Rihard | 4.140kg | 0.52 m |
| Sander | 3.330kg | 0.50 m |
| Marten | 3.756kg | 0.51 m |
| Bairon | 2.710kg | 0.49 m |
| Inga | 3.056kg | 0.48 m |
| Sebastian | 2.818kg | 0.48 m |
| Jaan | 3.496kg | 0.51 m |
| Elis | 2.760kg | 0.47 m |
| Heleriin | 3.398kg | 0.51 m |
| Andres | 4.345kg | 0.53 m |
| Melani | 3.150kg | 0.51 m |
| Joosep | 3.460kg | 0.49 m |
| Sebastian | 3.876kg | 0.52 m |
| Kaidro | 3.670kg | 0.53 m |
| Rasmus | 3.670kg | 0.52 m |
| Ralf | 4.842kg | 0.52 m |
| Jessika | 3.670kg | 0.53 m |
| Prank | 3.166kg | 0.53 m |
| Lars | 3.090kg | 0.50 m |
| Oliver | 3.640kg | 0.50 m |
| Marelle | 4.100kg | 0.51 m |
| Kelli | 3.540kg | 0.52 m |
| Karina | 3.400kg | 0.51 m |
| Maria | 3.986kg | 0.51 m |
| Marinel | 4.062kg | 0.51 m |
| Lisandra | 3.186kg | 0.49 m |
| Gregori | 3.910kg | 0.51 m |
| Mirell | 4.080kg | 0.54 m |
| Meribel | 4.040kg | 0.53 m |
| Merike | 3.912kg | 0.53 m |
| Tanel | 3.104kg | 0.48 m |
| Emil | 3.410kg | 0.50 m |
| Marek | 4.600kg | 0.51 m |
| Merike | 3.800kg | 0.52 m |
| Rita | 3.778kg | 0.52 m |
+-----------+---------------------------+-----------------------+
51 rows in set (0.00 sec)
15. Leia poiste ja tüdrukute keskmine kaal.
mysql> SELECT Sugu, AVG(Synnikaal) AS 'Keskmine kaal' FROM SYNNID GROUP BY
Sugu;
+------+---------------+
| Sugu | Keskmine kaal |
+------+---------------+
| p | 3467.2593 |
| t | 3517.6667 |
+------+---------------+
2 rows in set (0.01 sec)
16. Leia hetke kuupäev ja kellaaeg.
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2020-10-02 16:24:51 |
+---------------------+
1 row in set (0.00 sec)
17. Näita, millised andmetabelid on Sinu AB andmebaasis.
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_eensaara_AB |
+-----------------------+
| EMAD |
| LAENUTUS |
| LUGEJA |
| RAAMAT |
| SYNNID |
+-----------------------+
5 rows in set (0.00 sec)
18. Valmis töö lae Moodle'isse tagasisidestamiseks. Lisa veebiteksti, milliste
käskude kasutamist peab järgmises tunnis kordama, kui kõik oli arusaadav,
kirjuta, et ei vaja ülesandes tehtud käskude kordamist.
MySQL kodune töö
Meedia
Kommentaarid (0)
Kõik kommentaarid