PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Samankaltaiset tiedostot
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

HELIA 1 (17) Outi Virkki Tietokantasuunnittelu

EXEC SQL BEGIN DECLARE SECTION

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi Harri Laine 1. SQL:n käyttö ohjelmissa

SQL - STRUCTURED QUERY LANGUAGE

Tunnetko nämä PL/SQL:n piirteet? Kari Aalto Saariston IT

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

HELIA 1 (14) Outi Virkki Tiedonhallinta

TIETOKANNAT JOHDANTO

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Makrojen mystinen maailma lyhyt oppimäärä

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

Ohjelmointiharjoituksia Arduino-ympäristössä

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

HELIA 1 (14) Outi Virkki Tiedonhallinta

3. Taulujen määrittely ja muuttaminen

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

RDBMS - Yhteyskäytännöt

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Tietokannat II -kurssin harjoitustyö

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Oracle-tietokanta. Riku Nykänen 1/2010

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

CSE-A1200 Tietokannat

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

IIO10200 Tietokantaohjelmointi (4 op)

Tietohakemisto ja Transaktionkäsittely

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Microsoft Visual Studio 2005

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokannan konversio

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

HELIA 1 (11) Outi Virkki Tiedonhallinta

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Opiskeluoikeuksien maaran tiedonkeruu

Tietokantojen perusteet

Java ja tietokannan käsittely (JDBC)

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

DS2-proseduuri / ohjelmointisyntaksi. Tapio Kalmi Team Leader, Data Management Consulting SAS Institute Oy

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Kielioppia: toisin kuin Javassa

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

PL/SQL -kieli WWW-palveluiden tuottamisessa

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Täysautomatisoitu raportointiympäristö. Joni-Petteri Paavilainen Jani Alatalo

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

HELIA 1 (14) Outi Virkki Tiedonhallinta

LINUX-HARJOITUS, MYSQL

SQL Buddy JAMK Labranet Wiki

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

XQuery tietokannan kyselykielenä

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Web Services tietokantaohjelmoinnin perusteet

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Ohjelmoinnin perusteet Y Python

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

CS-A1150 Tietokannat

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Maiju Mykkänen Susanna Sällinen

Jakso 4 Aliohjelmien toteutus

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Transkriptio:

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon) Bisneslogiikka lähemmäksi käytettävää tietokantaa Tehokkuus: dataintensiivinen ohjelmalogiikka tietokantapalvelimen muistissa Monikäyttöisyys: samaa ohjelmamoduulia voidaan kutsua monesta eri sovelluksesta (esim. päätelaitteesta) käsin Proseduraalisten kielet ovat toimittajakohtaisia: Oraclen PL/SQL (PL = Procedural Language) SQL Serverin Transact SQL ANSI-standardi proseduureille: SQL/PLM (SQL 99)

PERUSASIOITA PROSEDUUREISTA Muuttujat määritetään DECLARE-osassa Varsinainen ohjelmalogiikka on BEGIN-END-lohkon sisällä Tuotekohtaisia eroja ehto- ja toistorakenteiden toteutuksessa, yleensä löytyy kuitenkin IF-THEN-ELSE ja WHILE-luuppi SELECTillä haetun tietojoukon käsittely tapahtuu kursorin avulla

OCELOT, PROSEDUURIT Proseduuri luodaan käskyllä CREATE PROCEDURE esim. proseduuri, joka lisää tauluun taulu1 parametrina annettavan kokonaisluvun: CREATE PROCEDURE p1 (x int) MODIFIES SQL DATA INSERT INTO taulu1 VALUES (x) Proseduuria kutsutaan (eli se suoritetaan) CALLkäskyllä, esim. lisätään taulu1:een arvo 10: CALL p1(10)

PROSEDUURIN ESIMERKKIRUNKO (OCELOT) CREATE PROCEDURE OmaProseduuri (parametri tietotyyppi) MODIFIES SQL DATA BEGIN DECLARE omamuuttuja1 tietotyyppi; DECLARE omamuuttuja2 tietotyyppi; DECLARE omakursori CURSOR FOR SELECT sarake1, sarake2 FROM taulu1 WHERE sarake 3 = parametri; OPEN omakursori; FETCH FROM omakursori INTO omamuuttuja1, omamuuttuja2; INSERT INTO taulu2 VALUES (omamuuttuja1, omamuuttuja2); CLOSE omakursori; END;

ESIMERKKI ORACLEN PROSEDUURISTA -- Tulostaa näytölle kaikki työntekijät (EMP-taulusta) -- määritellään ensin kursori DECLARE cursor employee_cursor is select * from emp; -- sitten varsinainen ohjelmalohko, joka käy tietojoukon läpi rivi kerrallaan BEGIN for EmpRec in employee_cursor loop DBMS_OUTPUT.put_line(EmpRec.empno ' ' EmpRec.ename); end loop; END; /

FUNKTIOT JA HERÄTTIMET (TRIGGERS) Funktiot ja herättimet ovat proseduurien erikoistapauksia Funktio on proseduuri, joka palauttaa jonkin arvon Herätin käynnistyy automaattisesti DMLtietokantaoperaatioista (INSERT, UPDATE tai DELETE) Eheyden valvontaan ja monimutkaisiin tarkistuksiin Muuttuneiden, poistuneiden ja uusien tietojen tallettamiseen toiseen tauluun => loki Tietojen toisteisuuden hallintaan (eheystarkistukset, joita ei ole tehty viite-eheyssäännöillä)

OCELOT, FUNKTIOT Funktio luodaan käskyllä CREATE FUNCTION Esim. funktio, joka palauttaa merkkijonon 'Suuri' tai 'Pieni': CREATE FUNCTION f1 (p1 INT) RETURNS CHAR(5) BEGIN IF p1 > 15 THEN RETURN 'Suuri '; ELSE RETURN 'Pieni'; END IF; END; Funktiota käytetään osana SELECTiä, esim.: SELECT f1(17) FROM t1;

OCELOT, HERÄTTIMET Herätin luodaan käskyllä CREATE TRIGGER Esim. herätin, joka tarkistaa tiedon ennen tallennusta tauluun koe CREATE TRIGGER trig1 BEFORE UPDATE ON koe BEGIN IF p1 > 15 THEN ROLLBACK; ELSE COMMIT; END IF; END; Herätintä ei siis tarvitse erikseen kutsua

SQL SERVER, ESIMERKKI 2. Muuta parametri(t) tarvittaessa 3. Paina Startpainiketta 1. Execute in new window

MYSQL, ESIMERKKI QUERY BROWSERIN KÄYTÖSTÄ PROSEDUURIN LUONNISSA Herong's Tutorial Notes: http://www.herongyang.com/sql/proc_sql.html http://dev.mysql.com/doc/refman/5.1-maria/en/create-procedure.html

ORACLE Käynnistä SQL*Plus (Worksheet) Luo proseduuri (BEGIN... END) Laita päälle tulostus näytölle: set serveroutput on Suorita proseduuri esim. samalla idealla kuin teit proseduurin, ts. kutsu sitä: begin ProseduurinNimi(parametrit); end; tai jos olet antanut proseduurille nimen, voit kutsua sitä: start ProseduurinNimi PL/SQL-harjoitukset: erillinen tiedosto Lisätietoa: http://en.wikipedia.org/wiki/pl/sql ja http://www.orafaq.com/wiki/pl/sql_faq