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

Samankaltaiset tiedostot
SQL - STRUCTURED QUERY LANGUAGE

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

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

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

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

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

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

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

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 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)]

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

SELECT-lauseen perusmuoto

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

Liitokset - haut useaan tauluun

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

3. Taulujen määrittely ja muuttaminen

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

SQL:N PERUSTEET MARKKU SUNI

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

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

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Makrojen mystinen maailma lyhyt oppimäärä

Näkymät ja tiedon suojaus

HELIA 1 (11) Outi Virkki Tiedonhallinta

Opiskeluoikeuksien maaran tiedonkeruu

CSE-A1200 Tietokannat

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

Kyselyn yleisrakenne:

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

OUTER JOIN se vanha kunnon kaveri

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

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

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

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokannat II -kurssin harjoitustyö

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

T Testiraportti TR-3. ETL-työkalu

Luento 7 Taulukkolaskennan edistyneempiä piirteitä Aulikki Hyrskykari

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

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Ohjelmoinnin perusteet Y Python

DOORS Word DOORS SoftQA Pekka Mäkinen

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

TAULUKOINTI. Word Taulukot

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

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

Ohjelmoinnin perusteet Y Python

Toteutusdokumentti. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Ylläpitopalvelu. Tietuekuvaus. Tietuekuvaus 1 (8) Ylläpitopalvelu. Julkinen - Public

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Tietorakenteet ja algoritmit

EXEC SQL BEGIN DECLARE SECTION

Päivityspalvelu. Tietuekuvaus. Tietuekuvaus 1 (5) Päivityspalvelu. Julkinen - Public

Abstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Virta_Latausraportti - Tarkistukset

Ohjelmoinnin perusteet Y Python

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

Kari Aalto Saariston IT

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

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

Korpusten käsittely clt131, P Luento 3

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

CSE-A1200 Tietokannat

Java ja tietokannan käsittely (JDBC)

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Ohjelmoinnin jatkokurssi, kurssikoe

Transkriptio:

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

Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values Login ja glogin.sql Sample & Seed 2

Regular Expression -funktiot Regular expression -toiminnallisuus mahdollistaa merkkimuotoisen tiedon haun ja käsittelyn k erää äänlaisten mallien (pattern) avulla REGEXP_LIKE REGEXP_INSTR REGEXP_REPLACE REGEXP_SUBSTR tiedonhaku mallin (pattern) perusteella hakee merkkijonosta mallia ja palauttaa sen alkuposition hakee merkkijonosta mallia ja korvaa sen toisella merkkijonolla hakee merkkijonosta mallia ja palauttaa osajonon 3

REGEXP_LIKE muistuttaa LIKE-operaattoria, mutta tarjoaa enemmän n mahdollisuuksia syntaksi: REGEXP_LIKE (SearchString, PatternToMatch, MatchParam) 4

REGEXP_LIKE etsitää ään n tuotteita, joiden nimissä esiintyy x (i = case insensitive matching) SELECT tuote_id, nimi FROM tuotteet WHERE REGEXP_LIKE (nimi, 'x', 'i'); etsitää ään n tuotteita, joiden nimissä esiintyy joko laturi tai startti sana SELECT tuote_id, nimi FROM tuotteet WHERE REGEXP_LIKE (nimi, 'laturi startti', 'i'); 5

REGEXP_LIKE etsitää ään n tuotteita, joiden nimien alussa esiintyy joko laturi- tai startti-sana sana SELECT tuote_id, nimi FROM tuotteet WHERE REGEXP_LIKE (nimi, '^laturi ^startti', 'i'); etsitää ään n tuotteita, joiden nimissä esiintyy joko s tai c SELECT tuote_id, nimi FROM tuotteet WHERE REGEXP_LIKE (nimi, '[s c]', 'i'); 6

Case-insensitive Sort asettamalla NLS_SORT parametrin arvoksi 'binary_ci' saadaan aikaan lajittelu, joka ei tee eroa isojen ja pienten kirjainten välillv lillä SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_SORT'; PARAMETER NLS_SORT VALUE BINARY ALTER SESSION SET nls_sort=binary_ci; 7

Case-insensitive Search asettamalla NLS_SORT parametrin arvoksi 'binary_ci' ja NLS_COMP parametrin arvoksi 'ansi' saadaan hakutoiminnallisuus, joka ei tee eroa isojen ja pienten kirjainten välillv lillä ALTER SESSION SET nls_sort=binary_ci nls_comp=ansi; toimii operaattoreilla =, <>,!=, <, >, <=, >= IN, BETWEEN, CASE ORDER BY, START WITH, HAVING 8

Merge-käsky on Select-,, Insert- ja Update- ja Delete-käskyjen yhdistelmä uutuutena Oracle9i:ssä tuntee myös s nimen Upsert tarkoituksena virkistää kohdetaulua Select-lauseen lauseen palauttamalla tiedolla käyttökelpoinen esim. Data Warehousejärjestelmissä (tietojen siirto/refresh lähdel hdejärjestelmistä tietovarastoon) 9

idea: Merge-käsky jos avaimenarvoa vastaavaa riviä ei kohdetaulussa ole, tehdää ään n lisäys muussa tapauksessa päivitys p...... tai poisto uutuutena Oracle10g:ssä Merge:llä voidaan poistaa rivejä kohdetaulusta Oracle10g:ssä voidaan asettaa ehtoja lisäykselle, päivitykselle ja poistolle 10

Esimerkki Merge:n käytk ytöstä MERGE /*+APPEND*/ INTO asiakkaat_dw a_dw USING ( SELECT id, nimi, lahios, kaupunki FROM asiakkaat) a ON (a_dw.id = a.id) WHEN MATCHED THEN UPDATE SET a_dw.lahios = a.lahios, a_dw.kaupunki = a.kaupunki WHERE a.lahios IS NOT NULL DELETE WHERE a_dw.kaupunki = 'Baghdad' WHEN NOT MATCHED THEN INSERT ( a_dw.id, a_dw.nimi, a_dw.lahios, a_dw.kaupunki) VALUES (a.id, a.nimi, a.lahios, a.kaupunki) WHERE a.id BETWEEN 1000 AND 2000; 11

TREE-WALKING in 10g CONNECT BY PRIOR START WITH ORDER SIBLINGS BY CONNECT_BY_ROOT määrittelee hierarkian tasojen välisen yhteyden osoittaa hierarkian läpikl pikäynnin alkukohdan määrittelee samalla tasolla olevien rivien lajittelujärjestyksen mahdollistaa viittauksen root-rivin rivin sarakkeisiin 12

TREE-WALKING in 10g CONNECT_BY_ISCYCLE CONNECT_BY_ISLEAF LEVEL SYS_CONNECT_BY_PATH paljastaa luupin hierarkiassa (arvot 0 tai 1) kertoo, onko kyseessä lehti taso taso (alin taso) rivin suhteellinen taso hierarkiassa palauttaa sarakkeen arvon ketjun root-rivist rivistä aktiiviselle riville saakka 13

TREE-WALKING in 10g luetaan työntekij ntekijätietoja tietoja ja lajitellaan sisarukset sukunimen mukaan SELECT LPAD(' ', 2*LEVEL) id AS id, etunimi, sukunimi, pomo_id FROM tyontekijat START WITH pomo_id is null CONNECT BY PRIOR id = pomo_id ORDER SIBLINGS BY sukunimi; 14

TREE-WALKING in 10g tulostetaan myös suuren johtajan nimi (Connect_by_root) ja sukunimien muodostama ketju tästä johtajasta aktiiviselle riville SELECT LPAD(' ', 2*LEVEL) id AS id, etunimi, sukunimi, pomo_id, CONNECT_BY_ROOT sukunimi AS isopomo, SYS_CONNECT_BY_PATH(sukunimi, ' ') AS ketju FROM tyontekijat START WITH pomo_id is null CONNECT BY PRIOR id = pomo_id ORDER SIBLINGS BY sukunimi; 15

9i: DML-käskyt ja palautuvat arvot DECLARE apu1 asiakkaat.nimi%type; apu2 asiakkaat.kaupunki%type; apu3 asiakkaat.maa%type; BEGIN UPDATE asiakkaat SET nimi ='SAARELA', kaupunki = 'RAUMA', maa = 'SUOMI' WHERE id = 10 RETURNING substr(nimi, 1,3), kaupunki, substr(maa, 1, 1) INTO apu1, apu2, apu3; END; / 16

10g: INSERT ja palautuvat arvot Insert-käsky sky voi palauttaa yksittäisen isen funktion arvon funktion arvo johdetaan niistä riveistä,, joihin Insertkäsky kohdistuu DECLARE duunari_lkm number(4);... BEGIN INSERT INTO duunarit SELECT * FROM tyontekijat RETURNING count(id) INTO duunari_lkm; END; / 17

10g: UPDATE ja palautuvat arvot annetaan normaali palkankorotus ja katsotaan samalla, miten kalliiksi se tulee DECLARE palkka_summa number(9,2);... BEGIN UPDATE tyontekijat SET palkka = palkka * 1.5 RETURNING sum(palkka) INTO palkka_summa; END; / 18

Muuta uutta... DEFAULT-avainsanaa voidaan käyttk yttää INSERT-ja UPDATE-käskyjen yhteydessä UPDATE asiakkaat SET luottoluokitus = DEFAULT WHERE kirjpvm = '01.05.2006'; SELECT... FOR UPDATE käskylle voidaan antaa odotusajan pituus (ennen WAIT/NOWAIT) SELECT * FROM asiakkaat WHERE kaupunki = 'TAMPERE' FOR UPDATE WAIT 4; 19

SQL*PLUS-muutoksia login.sql ja glogin.sql tiedostot suoritetaan automaattisesti sqlplussan käynnistyksen k yhteydessä 10g:ssä ne suoritetaan myös s connect-käskyn yhteydessä poistetut objektit säilyvs ilyvät t roskakorissa, kunnes annetaan Purge-käsky (jos kanta on flashback- moodissa) tai SHOW RECYCLE BIN PURGE TABLE x INDEX x TABLESPACE x RECYCLEBIN; FLASHBACK TABLE x TO BEFORE DROP; 20

SAMPLE ja SEED jo aiemmin Oraclessa on voinut hakea satunnaisen otoksen sample-optiolla SELECT * FROM myynnit WHERE kaupunki = 'PORI' SAMPLE(10); -- noin 10 prosenttia Seed-optio varmistaa, että satunnaisen otoksen rivit ovat samat kun haku toistetaan SELECT * FROM myynnit WHERE kaupunki = 'PORI' SAMPLE(10) SEED(1); -- samat noin 10 prosenttia 21

Hyvää kevää ään n jatkoa! Kari Aalto kari.aalto@saaristonit.fi