Andmebaasid. IV praktikum. Vaated; Tabelite täitmine päringute abil

Seotud dokumendid
Pealkiri

SQL

SQL

Pealkiri

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

Relatsiooniline andmebaaside teooria II. 6. Loeng

Andmebaasid, MTAT loeng Normaalkujud

Eksam õppeainetes "Andmebaasid I" (IDU0220) ja "Andmebaaside projekteerimine" (IDU3381)

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Microsoft Word - ref - Romet Piho - Tutorial D.doc

KOOLITUSTE HALDAMINE E-TÖÖTUKASSA KASUTAJAJUHEND 1

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

Microsoft Word - requirements.doc

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers)

Microsoft Word - installation-guide.doc

VL1_praks2_2009s

EDL Liiga reeglid 1. ÜLDSÄTTED 1.1. EDL Liiga toimub individuaalse arvestuse alusel, kus mängijad on jagatud hooaja EDL Liiga tulemuste põhj

1. AKE Ajalise keerukuse empiiriline hindamine

Microsoft Word - VOTA_dok_menetlemine_OIS_ doc

Operatsioonisüsteemide ehitus

VL1_praks6_2010k

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Operatsioonisüsteemi ülesanded

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

KOTKAS AVE kasutajakeskne juhend Loomise Muutmise kuupäev: kuupäev: Versioon: 2.0 Klient: Keskkonnaministeeriumi Infotehno

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

3. Laskevõistlus "Aasta lühim päev" ÕHKRELVADEST LASKMISES Toetajad: OÜ Masinateenus ja Laskur.ee Ülenurme Õhupüss 20l Poisid Koht Nimi

Siseministri määruse nr 1-1/24 Lennundusseaduse alusel tehtava taustakontrolli isikuandmete ankeedi vorm LISA Isikuandmete ankeet Vastama p

Paberretsepti digitaliseerimine

Microsoft Word - RM_ _17lisa2.rtf

Tartu Kutsehariduskeskus IKT osakond Merlis Karja-Kännaste ASUTUSE DOKUMENDIREGISTRI AVALIK VAADE Analüüs Juhendaja Mirjam-Merike Sõmer Tartu 2015

Tartu Kutsehariduskeskus Teksti sisestamine Suurem osa andmetest saab sisestatud klaviatuuril leiduvate sümbolite abil - tähed, numbrid, kirjavahemärg

Saaremaa Sügis '97

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

E-R mudel

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

AASTAARUANNE

KINNITATUD Tallinna Ehituskooli direktori käskkirjaga nr 1-1/18 KOOSKÕLASTATUD Tallinna Ehituskooli nõukogu protokoll nr 10 Õppe

Lisa 2 Kinnitatud Kambja Vallavalitsuse määrusega nr 11 PUUDEGA LAPSE HOOLDUS- JA SOTSIAALTEENUSTE VAJADUSE HINDAMISVAHEND Lapsevaema/hoold

Ecophon Hygiene Meditec A C1 Ecophon Hygiene Meditec A C1 on helineelav ripplaesüsteem kohtadesse, kus regulaarne desinfektsioon ja/või puhastamine on

Kaupmehed ja ehitusmeistrid Selle laiendusega mängimiseks on vajalik Carcassonne põhimäng. Laiendit võib mängus kasutada täielikult või osaliselt ning

Microsoft Word - 23jaan07.doc

Abiarstide tagasiside 2016 Küsimustikule vastas 137 tudengit, kellest 81 (60%) olid V kursuse ning 56 (40%) VI kursuse tudengid. Abiarstina olid vasta

Sekretäri tööülesanded, õigused ja vastutus Ametikohtade eesmärk Ametikoht 1 (sekretär) Asjaajamise, dokumendiringluse ja linnavalitsuse sisekommunika

STAR andmeregistri koolitusmaterjal Juhtumimenetluse läbiviimine ja juhtumiplaani haldamine 1

Microsoft PowerPoint - Kliiniliste auditite kogemused [Read-Only] [Compatibility Mode]

PowerPoint Presentation

Microsoft Word - 56ylesanded1415_lõppvoor

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

MTAT Loeng 11 ( )

OÜ Lemonsport Hummel spordivarustus Raplamaa JK õpilastele ja pereliikmetele Valik september Jalgpallikooli võistlus- ja treeningvarustus 20

Programmi AnimatorDV Simple+ lühike kasutajajuhend

HWU_AccountingAdvanced_October2006_EST

Print\A4\RaceLandscape.pmt

Microsoft Word - SDEMuutused.doc

Operatsioonisüsteemi ülesanded

Võrguväljaanded ja veebiarhiveerimine

KMahjonggi käsiraamat

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

Elva lahtised MV , Elva 60l Lamades Mehed Koht Eesnimi Perenimi S.a. Klubi Seeriad Σ Klass I Andreas MASPANOV 1976 Põlva LSK 100,6 1

Võrguregistripõhine võrguplaneerimine Jaanus Kokk AS Eesti Telekom

ESRI PÄEVADE AUHIND 2014 Aasta GIS-i tegu

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

Slide 1

Microsoft Word - E-portfoolio-googlesites.docx

Kuldkaruke Kohtla-Järve 20kg 23kg 26kg 29kg 32kg 35kg 1 Tristan Kiipus, Tulevik 2 Eryk Krawczyk, Kuldkaru 3 Ivan Chykhlin, Kuldkaru 4

Microsoft PowerPoint - Loeng2www.ppt [Compatibility Mode]

loeng2

Siseministri 21. veebruari 2005.a määruse nr 34 Siseministri 27. augusti 2004.a määruse nr 52 Schengen Facility vahendite kasutamise kord muutmine lis

Praks 1

Share wave 5: 50+ in Europe - Coverscreenwizard version IF SKIP_INTROPAGE = 0 CoverscreenWizardIntroPage Järgnev sissejuhatus sisaldab üldküsimu

PowerPoint Presentation

Kom igang med Scratch

Esitlusslaidide kujundusest

RAPLA MAAKONNA MEISTRIVÕISTLUSED MK JUHAN LAHTISED MEISTRIVÕISTLUSED Kivi-Vigala, 14. märts a sündinud ja nooremad 2004a sündinud ja nooremad

EELNÕU

Väljaandja: Keskkonnaminister Akti liik: määrus Teksti liik: terviktekst Redaktsiooni jõustumise kp: Redaktsiooni kehtivuse lõpp:

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Viimsi MV ujumises protokoll

Microsoft Word - Referaat.docx

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

Doktoritöö malli kasutamise juhend koos Wordi selgitustega Sisukord Sissejuhatus see on numbrita esimese taseme pealkiri Doktoritöö malli kasut

Eesti noorte B-kl. meistrivõistlus 17. nov Põlva 30l Lamades Poisid Koht Eesnimi Perenimi S.a. Klubi Σ KL I Rando DÜÜNA 2002 Kaiu LK

lvk04lah.dvi

Väljavõte:

Andmebaasid IV praktikum Vaated; Tabelite täitmine päringute abil

VAATED

Vaade ehk View Vaade on Select lause, millele on antud nimi ja mida saab võrdselt teiste tabelitega kasutada päringutes Vaade on virtuaalne dünaamiline tabel

Vaadete kasutuskohad Piiramaks andmekasutust põhistruktuure muutmata Lihtsustamaks keerulisi pidevalt vajaminevaid päringuid Maandamaks andmestruktuuride muutuse riski vaatajatele (aruandegeneraatorid, veebiliides info väljastamiseks jms)

Süntaks CREATE VIEW <vaade> [({veerud})] AS {select lause ilma järjestamiseta} DROP VIEW <vaade>

Näiteid Lõige isikutabelist: vaid isikud klubist numbriga 54 CREATE VIEW v_klubi54 AS SELECT * FROM isik WHERE klubi = 54; Lõige isikutabelist: vaid isikute nimed klubist numbriga 54 CREATE VIEW v_klubi54pisi (eesnimi, perenimi) AS SELECT eesnimi, perenimi FROM isik WHERE klubi = 54; Ühendame isikutabelis ja klubitabeli: Klubi nimi, klubi id, isiku nimi ja id CREATE VIEW v_mangija (klubi_nimi, klubi_id, isik_nimi, isik_id) AS SELECT klubi.nimi, klubi.id, isik.perenimi ', ' isik.eesnimi, isik.id FROM isik JOIN klubi ON isik.klubi = klubi.id;

Olemasolevad andmed (tabelid ja vaated)

Kui tahame andmeid tabelitest isik (2x) valgetega ja mustadega mängija nime, klubi (mängijate klubide nimesid) ja partii (partii tulemust), siis võime oma päringut lihtsustada pannes kokku tabeli partii ja vaate v_mangija (2x) CREATE VIEW v_partii (id, turniir, algus, valge_nimi, valge_klubi, valge_punkt, must_nimi, must_klubi, must_punkt ) AS SELECT p.id, p.turniir, p.algushetk, v.isik_nimi, v.klubi_nimi, p.valge_tulemus / 2.0, m.isik_nimi, m.klubi_nimi, p.musta_tulemus / 2.0 FROM partii as p, v_mangija as v, v_mangija as m WHERE p.valge = v.isik_id AND p.must = m.isik_id;

SELECT * FROM v_partii ORDER BY algus; 725 41 2005-01-12 08:02:00 Pustota, Pjotr Musta kivi kummardajad 0,5 Umnik, Toomas Võitmatu Valge 0,5 726 41 2005-01-12 08:04:00 Angervaks, Arvo Musta kivi kummardajad1 Ristik, Anna Ruudu Liine 0 727 41 2005-01-12 09:01:00 Sosnov, Andrei Musta kivi kummardajad1 Angervaks, Arvo Musta kivi kummardajad 0 728 41 2005-01-12 09:03:00 Maakamar, Mihkel Musta kivi kummardajad 0,5 Umnik, Toomas Võitmatu Valge 0,5 729 41 2005-01-12 09:03:00 Maasikas, Malle Võitmatu Valge 1 Hiis, Helina Ruudu Liine 0 730 41 2005-01-12 10:04:00 Umnik, Toomas Võitmatu Valge 1 Hiis, Helina Ruudu Liine 0 731 41 2005-01-12 10:04:00 Hiis, Henno Ruudu Liine 0,5 Hiis, Helina Ruudu Liine 0,5 732 41 2005-01-12 10:05:00 Puhasmaa, Nadja Võitmatu Valge 0,5 Ristik, Anna Ruudu Liine 0,5 733 41 2005-01-12 11:03:00 Maasikas, Malle Võitmatu Valge 1 Hiis, Henno Ruudu Liine 0 734 41 2005-01-12 11:08:00 Sosnov, Andrei Musta kivi kummardajad1 Umnik, Toomas Võitmatu Valge 0 735 41 2005-01-12 12:02:00 Umnik, Toomas Võitmatu Valge 1 Ristik, Anna Ruudu Liine 0 736 41 2005-01-12 12:04:00 Pustota, Pjotr Musta kivi kummardajad0 Hiis, Helina Ruudu Liine 1 737 41 2005-01-12 12:09:00 Angervaks, Arvo Musta kivi kummardajad 0,5 Kivine, Kalle Võitmatu Valge 0,5 738 41 2005-01-12 13:04:00 Maakamar, Mihkel Musta kivi kummardajad0 Hiis, Henno Ruudu Liine 1 739 41 2005-01-12 13:07:00 Sosnov, Andrei Musta kivi kummardajad0 Kivine, Kalle Võitmatu Valge 1 740 41 2005-01-12 13:09:00 Puhasmaa, Nadja Võitmatu Valge 0 Maasikas, Malle Võitmatu Valge 1 741 41 2005-01-12 14:05:00 Sosnov, Andrei Musta kivi kummardajad0 Maasikas, Malle Võitmatu Valge 1 742 41 2005-01-12 14:06:00 Pustota, Pjotr Musta kivi kummardajad1 Kivine, Kalle Võitmatu Valge 0 744 41 2005-01-12 16:02:00 Umnik, Toomas Võitmatu Valge 0,5 Maasikas, Malle Võitmatu Valge 0,5

TABELITE TÄITMINE PÄRINGUTE ABIL

Insert + Select Täidame tabeli päringuga. Tavaliselt ajaloo säilitamiseks või keerukamate andmetöötluste tegemise jaoks. INSERT INTO <tabel> [({VEERUD})] SELECT... FROM... WHERE... jne

Eesnimede esinemise sagedused Loome tabeli eesnimede muutuste jälgimiseks CREATE TABLE eesnimi ( eesnimi varchar(50) NOT NULL, kogus integer NOT NULL, hetk datetime NOT NULL DEFAULT current timestamp, PRIMARY KEY (eesnimi, hetk) ); Lisame andmed veergudesse eesnimi ja kogus INSERT INTO eesnimi (eesnimi, kogus) SELECT eesnimi, count(*) FROM isik GROUP BY eesnimi;

Muudame eesnimesid tabelis isik INSERT INTO isik (eesnimi, perenimi, klubi) VALUES ('Maria', 'Lihtne', 51); UPDATE isik SET eesnimi = 'Toomas' WHERE eesnimi = 'Taivo'; Kordame andmete lisamist tabelisse eesnimi: INSERT INTO eesnimi (eesnimi, kogus) SELECT eesnimi, count(*) FROM isik GROUP BY eesnimi; Vaatame kuidas muutus nimede arv SELECT eesnimi, hetk, kogus FROM eesnimi WHERE eesnimi IN ( 'Maria', 'Toomas', 'Taivo') ORDER BY hetk;

Päringu piiramine kogusega SELECT TOP <mitu> [START AT <esimene>] {veerud}... Kolm esimest nimekirjas SELECT TOP 3 eesnimi, perenimi FROM isik; (järjestus oli juhuslik) Õigem oleks SELECT TOP 3 eesnimi, perenimi FROM isik ORDER BY perenimi, eesnimi; Eelviimane isik (perenimede järjestuses) mängijate nimekirjas SELECT TOP 1 START AT 2 eesnimi, perenimi FROM isik ORDER BY perenimi DESC, eesnimi DESC;

Abitabeli täitmine numbritega CREATE TABLE viis ( nr INTEGER NOT NULL PRIMARY KEY ); INSERT INTO viis SELECT TOP 8 number(*) FROM partii; DELETE FROM viis WHERE nr > 5;

Massiline andmete lisamine Tekitame kõigile tudengitele erinevused tabelisse partii (omad andmed). Selleks: Lisame uue kirje (uue turniiri) tabelisse turniir. Olgu uus turniiri numbriga 47 (id=47) Lisame selle kirje (nn käsitsi) INSERT INTO turniir (id, nimi, toimumiskoht, alguskuupaev, loppkuupaev) VALUES (47, 'Kuldkarikas 2010', 'Elva', '2010-10-14', '2010-10-14'); Muutsime meelt: turniiri nimi olgu Plekkkarikas UPDATE turniir SET nimi = 'Plekkkarikas 2010' WHERE id = 47;

Lisame juurde kõigi mängijate omavahelised partii. (va endaga) ja mängijatega klubist 57, algushetke võtame juhusliku INSERT INTO partii (turniir, algushetk, valge, must) SELECT turniir.id, dateadd(minute,1+rand()*10, dateadd(hour, 8+rand()*10,turniir.alguskuupaev)), v.id, m.id FROM turniir, isik v, isik m WHERE turniir.id = 47 AND v.id <> m.id AND v.klubi <> 57 AND m.klubi <> 57;

Väärtustame (juhuslikult) veerud Lõpphetk ja paneme paika juhuslik võitja UPDATE partii SET lopphetk = dateadd(second, 50+mod(id, 121), dateadd(minute, 19 + mod(id,18) + mod(id,3) - mod(id,13), algushetk)) WHERE turniir = 47; UPDATE partii set valge_tulemus = mod(id+valge-must+turniir, 3) WHERE turniir = 47; UPDATE partii SET musta_tulemus = 2 - valge_tulemus WHERE turniir = 47;

Kustutame need partiid, kus sama turniiri jooksul mängijate paar kordub DELETE FROM partii p WHERE EXISTS ( SELECT * FROM partii q WHERE p.valge =q.must AND q.valge = p.must AND p.id < q.id AND turniir=47) AND turniir = 47;

Kustutame maha ajaliselt kõlbmatud. Pole võimalik alustada uut partiid, kui ühel mängijatest eelmine veel pooleli DELETE FROM partii p WHERE EXISTS ( SELECT * FROM partii q WHERE p.algushetk>= q.algushetk AND p.algushetk <= q.lopphetk AND p.id <> q.id AND (p.valge = q.valge OR p.valge=q.must OR p.must=q.valge OR p.must=q.must) AND q.turniir = p.turniir ) AND turniir = 47;

Vinge viisik Peale koduse ülesande tegemist on võimalik sooritada alljärgnev päring Näha äsja sisestatud turniiri viite paremat SELECT TOP 5 number(*), mangija, punkte FROM v_edetabel WHERE turniir = 47 ORDER BY punkte DESC;

Olemasolevad andmed (tabelid ja vaated)

Ülesanne nr 5 1. Luua vaade v_turniiripartii (turniir_nimi, partii_id, partii_algus, partii_lopp). 2. Luua vaade v_klubipartiikogus (klubi_nimi, partiisid) partiisid = selliste partiide arv, kus kas valge või must mängija on klubi liige. 3. Luua vaade v_punkt (partii, turniir, mangija, varv, punkt), kus oleksid kõigi mängijate kõigi partiide jooksul saadud punktid (viitega partiile ja turniirile) koos värviga (valge (V), must (M)). (Vaata järgnevat näidet).

Näiteks, kui tabelis partii on 2 kirjet: id turniir valge must valge_tulemus musta_tulemus 725 41 71 84 1 1 767 41 84 89 2 0 siis vaade v_punkt peab andma neli kirjet: partii turniir mangija varv punkt 725 41 71 V 0,5 725 41 84 M 0,5 767 41 84 V 1,0 767 41 89 M 0,0 NB! Hilisema kontrolli edukaks läbimiseks jälgida detaile: algtabelis veeru nimi musta_tulemus, Vaates veeru nimi must_punkt (ilma a-ta)!! Näpunäide: union kasutamine oleks abiks.

4. Vaate v_punkt ja vaate v_mangija põhjal teha vaade v_edetabel(mangija, turniir, punkte), kus veerus mangija on mängija nimi (v_mangija.nimi) ja veerus turniir on turniiri ID. Punkte arvutatakse iga turniiri jaoks (mängija punktid sellel turniiril). 5. Leida (teha päring) turniiri Kolme klubi kohtumine (turniiri ID = 41) edetabeli saamiseks (suurema punktiarvuga mängija eespool).