Ülesanne 8-Alampäringud (0)
1*. Leia vanima raamatu väljaandmisaasta (väljasta aastaarv).
mysql> SELECT MIN(aasta) AS 'vanima raamatu valjastamisaasta' FROM RAAMAT;
+---------------------------------+
| vanima raamatu valjastamisaasta |
+---------------------------------+
| 1920 |
+---------------------------------+
1 row in set (0.00 sec)
2. Leia vanima raamatu pealkiri, väljaandmise aasta ja autor.
mysql> SELECT pealkiri, autor, aasta FROM RAAMAT WHERE aasta=(SELECT
MIN(aasta) 'vanima raamatu valjastamisaasta' FROM RAAMAT);
+---------------+---------------+-------+
| pealkiri | autor | aasta |
+---------------+---------------+-------+
| Tde ja igus | A.H.Tammsaare | 1920 |
+---------------+---------------+-------+
1 row in set (0.00 sec)
3*. Leia kõige uuema raamatu väljaandmisaasta (väljasta aastaarv).
mysql> SELECT MAX(aasta) AS 'koige uuema raamatu valjastamisaasta' FROM
RAAMAT;
+--------------------------------------+
| koige uuema raamatu valjastamisaasta |
+--------------------------------------+
| 2015 |
+--------------------------------------+
1 row in set (0.00 sec)
4. Leia kõige uuema raamatu pealkiri, väljaandmise aasta ja autor.
mysql> SELECT pealkiri, autor, aasta FROM RAAMAT WHERE aasta=(SELECT
MAX(aasta) FROM RAAMAT);
+----------+----------------+-------+
| pealkiri | autor | aasta |
+----------+----------------+-------+
| Carry On | Rainbow Rowell | 2015 |
+----------+----------------+-------+
1 row in set (0.00 sec)
5*. Leia raamatute keskmine vanus (väljasta keskmine vanus).
mysql> SELECT AVG(aasta) AS 'Raamatute keskmine vanus' FROM RAAMAT;
+--------------------------+
| Raamatute keskmine vanus |
+--------------------------+
| 1971.3333 |
+--------------------------+
1 row in set (0.01 sec)
6. Leia keskmisest vanemad raamatud (pealkiri, vanus).
mysql> SELECT pealkiri, aasta FROM RAAMAT WHERE aasta<(SELECT AVG(aasta) FROM
RAAMAT);
+--------------------+-------+
| pealkiri | aasta |
+--------------------+-------+
| Frankestein | 1968 |
| Tde ja igus | 1920 |
| Kevade | 1945 |
| Konstitutsioon | 1944 |
| Rahvasbrad | 1951 |
| Leninismi alustest | 1945 |
| Mis teha | 1950 |
| Kasuema | 1923 |
| Kunksmoor | 1966 |
| Ja pike tuseb | 1938 |
| Vanamees ja meri | 1964 |
| 10 aastat hiljem | 1955 |
| Soo | 1971 |
| Vari | 1928 |
| Vares | 1948 |
| Sda ja rahu | 1963 |
| Saladuslik saar | 1956 |
+--------------------+-------+
17 rows in set (0.00 sec)
7. Leia laenutatud raamatute pealkirjad ja autorid (kasuta predikaati IN).
mysql> SELECT pealkiri, autor FROM RAAMAT WHERE raamatu_id in(SELECT
raamatu_id FROM LAENUTUS);
+---------------------+------------------+
| pealkiri | autor |
+---------------------+------------------+
| Asum | Isaac Asimov |
| Mina ja George | T.Trubetski |
| Rahvasbrad | V.I.Lenin |
| Testament | Rex Stout |
| Arabella | Aino Pervik |
| Ja pike tuseb | Hernst Hemingway |
| Kurit ja karistus | Dostojevski |
| Carry On | Rainbow Rowell |
+---------------------+------------------+
8 rows in set (0.00 sec)
8. Leia raamatud, mille hind on suurem 150 eurost, kui eelnevalt suurendati
raamatute hinda 1,5 korda.
mysql> SELECT pealkiri_uus, uus_hind FROM (SELECT pealkiri AS pealkiri_uus,
hind*1.5 AS uus_hind FROM RAAMAT) AS raamat_uus_hind WHERE uus_hind>150;
+---------------------+----------+
| pealkiri_uus | uus_hind |
+---------------------+----------+
| Tde ja igus | 352.500 |
| Kitumise anatoomia | 592.500 |
| Inimesed maskides | 195.000 |
| Testament | 172.500 |
| Kana ja muna | 675.000 |
| Arabella | 1314.000 |
| Ja pike tuseb | 490.500 |
| 10 aastat hiljem | 1231.500 |
| Sda ja rahu | 214.500 |
+---------------------+----------+
9 rows in set (0.00 sec)
9. Väljasta nende autorite raamatud, kellel on raamatute tabelis 3 raamatut.
mysql> SELECT autor, pealkiri FROM RAAMAT AS R WHERE 3=(SELECT COUNT(*) FROM
RAAMAT WHERE RAAMAT.autor=R.autor);
+---------+-------------------+
| autor | pealkiri |
+---------+-------------------+
| V.Lcis | Massi ebajumal |
| V.Lcis | Inimesed maskides |
| V.Lcis | Hiline kevad |
+---------+-------------------+
3 rows in set (0.00 sec)
10. Leia iga autori vanim raamat (väljasta pealkiri, autor ja aastaarv).
mysql> SELECT autor, pealkiri, aasta FROM RAAMAT WHERE(autor, aasta) in
(SELECT autor, MIN(aasta) FROM RAAMAT GROUP BY autor);
+------------------+---------------------+-------+
| autor | pealkiri | aasta |
+------------------+---------------------+-------+
| Isaac Asimov | Asum | 1976 |
| Mary Shelly | Frankestein | 1968 |
| A.H.Tammsaare | Tde ja igus | 1920 |
| Oskar Luts | Kevade | 1945 |
| T.Trubetski | Daam sinises | 1986 |
| Sigmund Freud | Kitumise anatoomia | 1997 |
| J.Stalin | Konstitutsioon | 1944 |
| V.I.Lenin | Rahvasbrad | 1951 |
| U.K.LeQuine | Pimeduse pahem ksi | 1975 |
| J.K.Ibin | Mis teha | 1950 |
| Nikolai Kogol | Surnud hinged | 1977 |
| A.Kivirhk | Kalevipoeg | 1997 |
| V.Lcis | Massi ebajumal | 1989 |
| V.Lcis | Inimesed maskides | 1989 |
| V.Lcis | Hiline kevad | 1989 |
| Rex Stout | Testament | 1986 |
| J.F.Cooper | Pioneerid | 1973 |
| M.Kivistik | Surma ratsanikud | 1992 |
| Kait Marandi | Kana ja muna | 1996 |
| Ellen Niit | Naksitrallid | 1980 |
| Rein Hanson | Arvuti A ja B | 1978 |
| Silvia Rannamaa | Kasuema | 1923 |
| Aino Perg | Kunksmoor | 1966 |
| Aino Pervik | Arabella | 1985 |
| Astrid Lindgren | Bullerby lapsed | 1982 |
| Tove Janson | Muumitrollid | 1998 |
| Hernst Hemingway | Ja pike tuseb | 1938 |
| Alexander Dumas | 10 aastat hiljem | 1955 |
| Juhan Liiv | Vari | 1928 |
| Jri Tuulik | Vares | 1948 |
| Lev Tolstoi | Sda ja rahu | 1963 |
| Dostojevski | Kurit ja karistus | 1973 |
| Jules Verne | Saladuslik saar | 1956 |
| Rainbow Rowell | Carry On | 2015 |
+------------------+---------------------+-------+
34 rows in set (0.01 sec)
Järgnevate päringute tegemisel võib kasutada alampäringuid aga ei ole
kohustuslik.
11. Muuda tabeli LAENUTAMINE andmeid, lisa 4 laenutatud raamatule
tagastamisajad (üks õigeaegselt toodud raamat, üks enne tähtaega, kaks peale
tähtaega). Tagastamisaegade sisestamisel ei pea jälgima tänast kuupäeva.
mysql> UPDATE LAENUTUS SET tagastamine='2020-10-06' WHERE laenamise_id=5;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE LAENUTUS SET tagastamine='2020-10-10' WHERE laenamise_id=6;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE LAENUTUS SET tagastamine='2020-10-05' WHERE laenamise_id=7;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> UPDATE LAENUTUS SET tagastamine='2020-10-22' WHERE laenamise_id=8;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM LAENUTUS;
+--------------+------------+-----------+------------+------------
+-------------+
| Laenamise_id | Kuupaev | Lugeja_id | Raamatu_id | Tahtaeg |
Tagastamine |
+--------------+------------+-----------+------------+------------
+-------------+
| 1 | 2020-10-01 | 8 | 30 | 2020-10-22 | 2020-10-22
|
| 2 | 2020-10-01 | 15 | 7 | 2020-10-22 | 2020-10-25
|
| 3 | 2020-09-29 | 15 | 7 | 2020-10-20 | 2020-10-18
|
| 4 | 2020-09-25 | 7 | 19 | 2020-10-16 | 2020-10-15
|
| 5 | 2020-09-15 | 15 | 40 | 2020-10-06 | 2020-10-06
|
| 6 | 2020-09-27 | 27 | 27 | 2020-10-18 | 2020-10-10
|
| 7 | 2020-09-10 | 13 | 10 | 2020-10-01 | 2020-10-05
|
| 8 | 2020-09-28 | 30 | 1 | 2020-10-19 | 2020-10-22
|
| 9 | 2020-09-26 | 28 | 42 | 2020-10-17 | NULL
|
| 10 | 2020-09-30 | 15 | 7 | 2020-10-21 | NULL
|
+--------------+------------+-----------+------------+------------
+-------------+
10 rows in set (0.00 sec)
12. Leia laenutajad, kes pole raamatut tagastanud, kuigi tähtaeg on juba
möödas.
mysql> SELECT LUGEJA.eesnimi, LUGEJA.perenimi, LAENUTUS.tahtaeg,
LAENUTUS.tagastamine
FROM
LUGEJA
INNER
JOIN
LAENUTUS
ON
LUGEJA.lugeja_id=LAENUTUS.lugeja_id WHERE tahtaeg>tagastamine;
+---------+----------+------------+-------------+
| eesnimi | perenimi | tahtaeg | tagastamine |
+---------+----------+------------+-------------+
| Sandra | Saar | 2020-10-20 | 2020-10-18 |
| Joosep | Jalakas | 2020-10-16 | 2020-10-15 |
| Kati | Karu | 2020-10-18 | 2020-10-10 |
+---------+----------+------------+-------------+
3 rows in set (0.00 sec)
13. Arvuta viivis nendele raamatute laenutajatele, kes ei tagastanud raamatut
õigeks päevaks. Viivis on 1 senti päevas.
mysql> SELECT LUGEJA.eesnimi, LUGEJA.perenimi, DATEDIFF(tahtaeg,
tagastamine)*0.01 AS 'viivis' FROM LUGEJA INNER JOIN LAENUTUS ON
LUGEJA.lugeja_id=LAENUTUS.lugeja_id WHERE tahtaeg>tagastamine;
+---------+----------+--------+
| eesnimi | perenimi | viivis |
+---------+----------+--------+
| Sandra | Saar | 0.02 |
| Joosep | Jalakas | 0.01 |
| Kati | Karu | 0.08 |
+---------+----------+--------+
3 rows in set (0.00 sec)
14. Väljasta hetke kuupäev ja kellaaeg.
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2020-10-21 00:33:56 |
+---------------------+
1 row in set (0.00 sec)
15. Valmis töö lae Moodle'isse tagasisidestamiseks või jaga faili õpetajaga. 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öö
Sarnased õppematerjalid
9
docx
Ülesanne 6-Tabeli struktuuri muutmine-Erinevad päringud
1. Lisa tabelisse RAAMAT uus väli Tiraaz, mis on täisarvu tüüpi.
mysql> ALTER TABLE RAAMAT ADD COLUMN Tiraaz mediumint(10);
Query OK, 42 rows affected (0.00 sec)
Records: 42 Duplicates: 0 Warnings: 0
mysql> DESCRIBE RAAMAT;
+------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------------------+------+-----+---------+----------------+
| Raamatu_id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| Pealkiri | varchar(100) | NO | | NULL | |
| Autor | varchar(50) | YES | | NULL | |
| Aasta | year(4) | YES | | NULL | |
| Koht | varchar(30) | YES | | NULL | |
| Lk_arv | smallint(6) | NO | | NULL | |
| Keel | varchar(50) | YES | | NULL
9
docx
Ülesanne 4-Päringud mitmest tabelist
1. Loo tabel LAENUTUS järgmiste väljadega: Laenamise_id PK, Kuupaev
(kuupäev), Lugeja_ID (täisarv) FK, Raamatu_ID (täisarv) FK, Tahtaeg
(kuupäev), Tagastamine (kuupäev). Tabeli kirjelduses näita ära primaarvõti
ja ka võõrvõtmed.
mysql> CREATE TABLE LAENUTUS(
-> Laenamise_id int unsigned not null auto_increment,
-> Luupaev date not null,
-> Lugeja_id mediumint(8) unsigned not null,
-> Raamatu_id mediumint(8) unsigned not null,
-> Tahtaeg date not null,
-> Tagastamine date,
-> PRIMARY KEY(Laenamise_id),
-> FOREIGN KEY(Lugeja_id) REFERENCES LUGEJA (Lugeja_id),
-> FOREIGN KEY(Raamatu_id) REFERENCES RAAMAT (Raamatu_id));
Query OK, 0 rows affected (0.01 sec)
mysql> DESCRIBE LUGEJA;
+-----------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------------------+------+-----+---------+----------------+
| lugeja_id | mediu
15
pdf
Andmebaasid
RAAMAT.Raamatu_id=LAENUTAMINE.Laenamise_id where Kuupäev is null
16. Milline raamat on laenatud välja esimesena, milline viimasena?
SELECT max(Tähtaeg) as Viimane, min(Tähtaeg) as Esimene from LAENUTAMINE;
17. Leia lugejate sooline jaotuvus (palju nais-, palju meessoost).
SELECT if(mod(left(Isikukood, 1), 2) = 0, 'naine', 'mees') as Sugu, Eesnimi, Perenimi from
LUGEJA;
Ülesanne 9. Alampäringud
Kasuta päringute tegemisel alampäringuid v.a. 3. ülesanne
1. Leia vanima raamatu pealkiri, väljaandmise aasta ja autor.
SELECT Pealkiri,Aasta,Autor FROM RAAMAT WHERE Aasta =(select min(Aasta)from RAAMAT);
2. Leia kõige uuema raamatu pealkiri, väljaandmise aasta ja autor.
SELECT Pealkiri,Aasta,Autor FROM RAAMAT WHERE Aasta =(select max(Aasta)from
RAAMAT);
3**. Leia raamatute keskmine vanus.
SELECT avg(2017-Aasta) as Keskmine_raamatu_vanus FROM RAAMAT;
4. Leia keskmisest vanemad raamatud (pealkiri, vanus).
210
docx
PHP EDASIJÕUDNUD RAAMAT
01 - PHP ja MySQL - Sissejuhatus
Teemad
Sissejuhatus
Mis on MySQL
Mis on SQL
Andmebaasi haldamine
Sissejuhatus
Millega ma nüüd jälle hakkama sain? Nimelt otsustasin vana php mooduli lüüa
vähemalt kaheks ning kirjeldada iga teema täpsemalt lahti. Esimene osa peaks
olema php põhikursus, kus õpime aluseid ning selles teemas nihutame latti
kõrgemale ja omandame keerulisemaid asju. Näiteks õpime kuidas siduda php
andmebaasiga, kuidas saada paremini läbi vormidega, mida hakata peale
sessioonidega jne.
Alustamegi kohe andmebaasi tutvustamisega, milleks meil seda vaja on ja kuidas
andmebaasi hallata.
Mis on MySQL?
Niisiis, php alused mooduli alguses paigaldasime arvutisse WAMP serveri, mis
paigaldas meie arvutisse Apache veebiserveri, MySQL andmebaasi ja Php
mooduli. Kuigi tihti öeldakse MySQL kohta lihtsalt andmebaas, siis on tegemist
tegelikult andmebaasihalduriga või siis kaandmebaasimootoriga. See sisaldab
endas:
andmebaasi serverit
134
pdf
Programmeerimine PHP
Programmeerimine keeles PHP
Andrei Porõvkin
Tartu Ülikool (2009)
1
1.1 Üldinfo
Alguses oli interneti lehed omavahel seotud staatiliste html dokumentide süsteemina, aga selleks, et mingis dokumendis muutusi teha
oli vaja lehti failisüsteemis käsitsi muuta. Kahjuks selline staatiline mudel ei jõua kiirelt muutuva kaasaegse maailma progressile järgi.
Seega võeti kasutusele dünaamiline mudel. Dünaamilise mudeli korral ei hoita serveris staatilisi html lehte vaid neid genereeritakse
selleks spetsiaalselt välja töötatud programmidega, mis serveril töötavad.
Antud kursuse jooksul tutvume klient-server arhitektuuriga, installeerime enda arvutisse veebiserveri ja php interpretaatori ning saame
baasteadmisi serveripoolsest keelest PHP. Kursuse teemad on pühendatud ainult PHP keelele (väljarvatud seitsmes teema), aga see ei
tähenda, et sellest piisab suure ja eduka veebilehe loomiseks. Mahuka infosüsteemi ei saa ette kujutada ilma andme
80
pdf
03Sisu481 560
ta vt tamm 2007.
482
Laanes, avaartikkel_Layout 1 29.06.12 12:32 Page 483
sündinud asjust” (1871).3 kuid need – eepos, populaarajalooline tekst ja kihu-
tuskõne – panid paika vaid eestlaste ajaloo üldise raami. jutukirjandus, mis
astus areenile mõnevõrra hiljem, pidi selle raami täitma inimeste, sündmus-
te ja eluolukirjeldustega. see ülesanne ei olnud sugugi kergete killast, sest
puudus traditsioon kujutamaks maarahvast nende minevikus, samuti oli
vähe selliseid ajaloolisi teadmisi, mis võimaldanuks kujutada nende eluolu ja
kombeid. need probleemid tulevad esile ka „tasujas”. see jutustus on heaks
näiteks sellest, millised vahendid olid käepärast kirjanikul, kes tahtis XiX
sajandi teisel poolel jutustada üksikisikutele keskenduvat lugu maarahva
Meedia
Kommentaarid (0)
Kõik kommentaarid