DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.

Slides:



Advertisements
Samankaltaiset esitykset
OULU ADVANCED RESEARCH ON SOFTWARE AND INFORMATION SYSTEMS Teppo Räisänen | Oulun yliopisto Facebook API Teppo Räisänen Tietojenkäsittelytieteiden.
Advertisements

Datan määrittely, MySQL
Puh Powerpoint-esitys: Ohjaus lukioon • sisältää 20 erilaista diaa • vaatii toimiakseen Microsoftin.
Kökkötraktori-verkkokauppa
Vaasan yliopiston DI-koulutus Ilkka Virtanen Pohjanmaan Kauppakamari Teollisuuden Forum Vaasan yliopisto
HASH-Objekti ”Taulukkotietorakenne” Sugif by Heikki Herva.
Aggregaattifunktiot (1)
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
ERITYISEN TUEN TARVE on lisääntynyt aikuislukioissa • Miten erityisen tuen tarve näkyy/ilmenee oppiaineessanne? • kielet: lauserakenteiden ymmärtämisen.
Eurooppalainen kielisalkku ammattikorkeakoulussa
Rekursiiviset kyselyt DB2:ssa DB2YTR
Elsa Savolainen T Johdatus opiskeluun tietotekniikan tutkinto-ohjelmassa.
Sugif by Heikki Herva Proc FCMP  Itse kirjoitetut funktiot Hash objekti  ”Taulukkotietorakenne”
Tietojenkäsittelytieteen laitos Helsingin yliopisto
Alla olevissa kaavioissa havainnollistetaan, miten aineenopettajan opetettavat aineet muodostuvat diplomi- insinöörin tutkinnon opinnoista. Pedagogisten.
Haaga-Helia Ammattikorkeakoulu
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
Monikon lisääminen (1) Luetellaan kaikki lisättävän rivin arvot INSERT INTO Asiakas VALUES (4, ’Assi’, ’Asiakas’); Luetellaan vain osa arvoista; muut arvot.
© Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto Access merkkijonovertailut 
Sivu 1 Tampereen kaupunki Tietotuotanto ja laadunarviointi Tampere Tampereen muuttoliike 1975–2006 Tulomuuton ja lähtömuuton volyymit ovat suurentuneet.
4.1-SQL-toimintoja Teuhola Relaatioskeemaa täydentäviä piirteitä: Näkymät (views) Näkymä on johdettu relaatio, jota ei fyysisesti ole välttämättä.
KRAKKEROINTI ja tietokannat.
SQL Standardoitu kieli, jonka avulla voidaan
Tietokannan luominen Tietokanta luodaan komennolla CREATE DATABASE
Mitä kieltä sinä puhut. Minä puhun saksaa

8. SQL-99 -kyselykieli: kaavan määrittely, perusrajoitukset ja kyselyt
Tietokannat –kurssi SQL peruskyselyt
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
University of Joensuu Dept. of Computer Science P.O. Box 111 FIN Joensuu Tel fax Tietojenkäsittelytieteen.
Tavoitteen asettaminen: tunnusluvut 1 Toteutuma 2007 Toteutuma 2008 OPM tavoite v Tavoite 2012 Lukuvuodessa vähintään 45 op suorittaneiden.
Pirjo Kallström Tietotekniikkaosasto
4.2-Sulautettu SQL Teuhola Sulautettu (embedded) SQL Ohjelmointikielen (ns. isäntäkielen) laajennus ISO-standardi, määritelty kielille Ada,
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
SQL SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle.
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Karteesinen tulo Huomaa attribuuttien nimien tarkentaminen taulujen nimillä.
Fyysinen suunnittelutMyn1 Fyysinen suunnittelu Tässä lähdetään liikkeelle tietokannan loogisesta mallista. Nyt pitää olla tiedossa valittava DBMS-tuote.
Avoin oppimisympäristö (A&O): Matriisilaskenta I
Palautetta opetuksestasi – WebOodi-järjestelmän käyttö tiedekunnassa Opetuksen päivä 2006 Matti Aarnio / TUKE.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
”Sähköposti Mikolle”, s. 43 Minkämaalainen Mikko on. Missä Mikko asuu
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
Lähiverkot erikoistyökurssi TIETOKANTAPALVELIN Linux-harjoitustyö Mari Toukola
Tietokantapalvelimet -Mikko Pehkonen, Tite4. Tietokantapalvelimista  DBMS (Database Management Systems)  Tarkoitettu tiedon keskitettyyn hallintaan.
KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola
Harjoitus 1 Perusta uusi projekti. Hae projektin kansioon NWIND.mdb. Ota kantaan yhteys. Tulosta comboboxiin rahtarien(Shippers) nimet.
Copyright Oy Thomas Antila Consulting Ab 1 Indeksointi Oracle 8i tietokannassa OUGF Syksy 2000.
Suomi 1A Tiistai 16. helmikuuta 2015 Pohjoinen ja etelä.
SQL ● Structured Query Language ● Standardoitu kieli tietokantakyselyiden tekemiseen – Standardoitu ei tarkoita etteikö olisi useampia versioita, joten.
Suomi 1A Torstai 11. helmikuuta Ystävänpäivä 14. helmikuuta.
Suomi 1B Harjoitus 23 A (s. 102) Kuunteluharjoitus 14 Kotitehtävä: harjoitus 18 & 21, 22.
Kriminaalipolitiikka ja rikollisuuden tutkimus. Monitieteinen pääaine Opinnoissa annetaan syvälliset tiedot sekä rikos- ja prosessioikeudesta että empiirisestä.
Tietokantakyselyt.  Tietokantakysely eli osajoukon erottaminen suuremmasta tietokannasta  Esimerkiksi: Suomen kunnat: Oulu Suomen kunnat: yli
Procedural Language Extensions to SQL
Suomi 1A 11. tunti Sanni HEinzmann.
Tutkintorakenteen tekninen malli
Mikäli ääniyhteys koneen kautta ei toimi
YLIOPISTOTENTTI / UNIVERSITY EXAM
Videon nimi tähän. Videon nimi tähän Lisää videoklippi tähän diaan ja poista tämä tekstikenttä Lisää videoklippi tähän diaan ja poista tämä tekstikenttä.
Esimerkkejä tietorakenteista
YLIOPISTOTENTTI / UNIVERSITY EXAM
Rakennusautomaatioyhdistys (RAY, “Building Automation Organization”) Sauna & introduction of Aalto University’s intelligent building technology pilot.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Katsaus eCraft2Learn-projektiin
– Ohjelmistojen mallintaminen, olio- ja relaatiomallinnuksen suhteesta
Hankalia (?) tilanteita Tammikuu 2014 Keke Tulomäki
Espoon Kirkkojärven koulu
Esityksen transkriptio:

DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus) ) ; CREATE TABLE opiskelija ( onumero numeric(5) NOT NULL, nimi varchar(40) NOT NULL, paa_aine varchar(12) NOT NULL, kaupunki varchar(30), aloitusvuosi numeric(4), PRIMARY KEY (onumero ) ) ;

SQL-valintaehto n Opettajien nimet: –select nimi from opettaja; n Opiskelijoiden pääaineet –select distinct paa_aine from opiskelija; n Tietojenkäsittelytieteen pääaineopiskelijoiden nimet –select nimi from opiskelija where paa_aine =‘TKT’;

SQL-valintaehto n Espoossa asuvat matematiikan opiskelijat select * from opiskelija where paa_aine=‘MAT’ and kaupunki=‘Espoo’; n Vuosina opintonsa aloittaneet opiskelijat: select * from opiskelija where aloitusvuosi >=1994 and aloitusvuosi<=1997; tai select * from opiskelija where aloitusvuosi between 1994 and 1997; tai select * from opiskelija where aloitusvuosi in (1994,1995,1996,1997);

SQL-valintaehto n Opiskelijat joiden sukunimi on Tele –select * from opiskelija where nimi like ‘Tele %’; –(esimerkkitaulussa nimet ovat muodossa sukunimi+’space’+etunimi) n Opiskelijat, joiden etunimi alkaa L:llä –select * from opiskelija where nimi like ‘% L%’; välilyönti

SQL-funktioita n Opettajien sukunimet (Oraclessa) select substr(nimi, 1, instr(nimi,’ ‘)-1) from opettaja; n substr(sarake, alku,pituus) eristää osamerkkijonon –standardissa substring(sarake FROM alku FOR pituus) –Solidissa substring(sarake, alku, pituus) n instr(sarake,merkkijono) antaa upotetun merkkijonon alkukohdan tai 0, jos ei löydy –std:ssa ja Solisissa: position( merkkijono IN sarake)

SQL-funktioita n Opettajat, joiden puhelinnumero on parillinen select * from opettaja where substr(puh,length(puh),1) in (‘0’,’2’,’4’,’6’,’8’); tai select * from opettaja where mod(to_number(puh),2)=0;

SQL- tuloksen järjestäminen n Järjestetty tulos on käyttäjän kannalta helpommin hahmotettavissa, soveltuu tiedon etsintään n SQL:ssä järjestys saadaan aikaan järjestysmääreellä –order by sarake [ {asc[ending] | desc[ending] }] [, …] –ascending = nouseva järjestys, pienemmät arvot alussa (oletusjärjestys ellei mainita) –descending = laskeva järjestys

SQL- tuloksen järjestäminen n Jos järjestysmääressä annetaan useita sarakkeita –järjestetään rivit ensin ensimmäisenä annetun sarakkeen perusteella –seuraavaksi ne rivit, joilla ensimmäisenä annetussa sarakkeessa on sama arvo järjestetään luettelon 2. sarakkeen perusteella –seuraavaksi...

Järjestys A B C D Order by A A B C D Order by A,B A B C D Order by A desc, B A B C D

SQL -järjestäminen n Merkkitiedon järjestäminen saattaa olla järjestelmän asetuksista riippuvaa ja toimia eri järjestelmissä eri tavoin –Esim. HY:n Oracle järjestää suomenkielisen aakkosjärjestyksen mukaisesti (V=W) eikä järjestäessään erottele isoja ja pieniä kirjaimia –Usein järjestäminen tapahtuu kuitenkin merkin merkkikoodin mukaisesti

Järjestäminen n Opiskelijat pääaineittain opiskeluajan perusteella järjestettynä vanhimmasta nuorimpaan select paa_aine, aloitusvuosi, nimi from opiskelija order by paa_aine, aloitusvuosi; n Järjestyksen määräämiseen käytettävien sarakkeiden on syytä olla tulostietolistan alussa (käyttöliittymätekniset syyt, ei SQL:n vaatimus)

SQL-Liitokset n Jos kyselyn from osassa on useampia tauluja, muodostetaan näiden taulujen ristitulo, ellei where-osassa ole ehtoa, joka kytkisi rivit yhteen n Jos where-osassa on rivit yhteenkytkevä ehto on kyseessä liitosoperaatio

SQL-Liitokset CREATE TABLE kurssi ( koodi numeric(8) NOT NULL, nimi varchar(40) NOT NULL, opintoviikot numeric(5,1) NOT NULL, luennoija varchar(12) NOT NULL, PRIMARY KEY (koodi ), FOREIGN KEY (luennoija) REFERENCES opettaja) n Kuka luennoi mitäkin kurssia: select kurssi.nimi, opettaja.nimi from opettaja, kurssi where luennoija=opetunnus order by kurssi.nimi;

SQL-Liitokset n Liitos tehdään useimmiten vertaamalla taulun avainta toisessa taulussa olevaan siihen viittaavaan viiteavaimeen. n Muunkinlaiset liitokset toki mahdollisia: n Opiskelijat, jotka toimivat ehkä myös opettajina select opiskelija.nimi from opiskelija, opettaja where opiskelija.nimi=opettaja.nimi order by opiskelija.nimi;

SQL-Liitokset n Taulujen järjestyksellä from osassa ei ole merkitystä kyselyn vastauksen kannalta –sillä saattaa olla merkitystä kyselyn suoritusajan kannalta, mutta tämä on järjestelmäkohtaista n Ehtojen järjestyksellä where-osassa ei ole merkitystä kyselyn vastauksen kannalta –silläkin saattaa olla merkitystä kyselyn suoritusajan kannalta, mutta tämä on järjestelmäkohtaista

SQL-Liitokset n From-osassa voi olla useita tauluja n Kaikki ne taulut, joiden dataa halutaan mukaan tulokseen on annettava from-osassa n Tauluille voidaan from-osassa antaa tilapäinen kyselyn sisäinen nimi (alias, correlation name) –from taulu [AS] alias –liitettävillä tauluilla on usein samannimisiä sarakkeita, joten taulunimeä on käytettävä tarkenteena - alias voi olla lyhenne, joka vähentää kirjoitusvaivaa

SQL-Liitokset –Jos sama taulu esiintyy from osassa useaan kertaan, on taulun esiintymät erotettava käyttämällä aliasta –Esim.: Kurssiparit, joilla on sama luennoija select A.nimi, B.nimi from kurssi A, kurssi B where A.luennoija=B.luennoija and A.koodi<B.koodi order by A.nimi, B.nimi –ehto A.koodi<B.koodi estää saman parin toistumisen eri järjestyksessä

SQL-Liitokset n Vuoden 92 standardissa from-osaan sallittiin normaalien taulujen lisäksi myös kyselyiden tulostaulut ja liitostulokset (ei Oracle) n from (alikysely) [[as] alias [( sarakeluettelo)] ] –alikysely on normaali kysely –sarakeluettelo uudelleennimeää alikyselyn tulossarakkeet –tästä rakenteesta on hyötyä, jos halutaan yhdistää yksityiskohtaista tietoa ja yhteenvetotietoa, esimerkki myöhemmin yhteenvetotietojen yhteydessä –yleensä rakenteen käyttö vain sotkee asioita - VÄLTÄ

SQL-Liitokset n Liitostulokset from osassa: n from … taulu1 [ ]JOIN taulu2 [ ON ] n = inner | left outer | right outer | full outer n Inner join on normaaliliitos (oletusarvo, jos join type-määrettä ei anneta) select kurssi.nimi, opettaja.nimi from opettaja join kurssi on luennoija=opetunnus order by kurssi.nimi n Tämä on siis toinen tapa esittää liitos n Jos kurssilla ei ole opettajaa, ei tulokseen tule mittään tietoa kurssista

SQL-Liitokset n Ulkoliitokset –ulkoliitoksella saadaan parittomaksi normaali-liitoksessa jäävät rivit mukaan tulokseen n Kaikki kurssit, luennoijatietoineen: select kurssi.nimi, opettaja.nimi from kurssi left outer join luennoija on luennoija=opetunnus order by kurssi.nimi –nyt luennoijattomatkin kurssit tulevat mukaan, luennoija.nimi saa arvon null select opettaja.nimi, kurssi.nimi from kurssi right outer join luennoija on luennoija=opetunnus order by opettaja.nimi näin saadaan kaikki opettajat, myös ne, jotka eivät luennoi

SQL-Liitokset n Tyypillinen virhe liitoksissa on jättää jokin liitosehto pois, jolloin tuloksen rivijoukko tulee huomattavasti suuremmaksi kuin pitäisi n jos from osassa on n kpl liitettäviä tauluja tarvitaan vähintään n-1 liitosehtoa. Taulujen liittäminen voi perustua useaan sarakkeeseen, jolloin ehtolausekkessa tarvittavien alkeisehtojen määrä voi moninkertaistua.

SQL-Liitokset n Yleensä kyselyt rakentuvat siten, että niissä on jokin keskeinen taulu johon, muita liitetään. Voi olla ettei tuosta keskeisestä taulusta tule mitään dataa tulokseksi. Keskeinen taulu liitokset

SQL - liitokset CREATE TABLE harjoitusryhma ( kurssikoodi numeric(4) NOT NULL, ryhmanro numeric(2) NOT NULL, viikonpaiva varchar(12) NOT NULL, alkamisaika numeric(2) NOT NULL, sali varchar(12) NOT NULL, opettaja varchar(12) NOT NULL, PRIMARY KEY (kurssikoodi, ryhmanro), FOREIGN KEY (kurssikoodi) REFERENCES kurssi, FOREIGN KEY (opettaja) REFERENCES opettaja ) ;

SQL - liitokset CREATE TABLE ilmoittautuminen ( kurssikoodi numeric(8) not null, ryhmanro numeric(2) not null, opisknro numeric(5) NOT NULL, ilm_aika date NOT NULL, PRIMARY KEY (opisknro, kurssikoodi), FOREIGN KEY (kurssikoodi, ryhmanro) REFERENCES harjoitusryhma, FOREIGN KEY (opisknro) REFERENCES opiskelija )

SQL - liitokset n Raportti kurssin ‘Java ohjelmointi’ harjoitusryhmistä select H.ryhmanro rno, Ope.nimi ope, H.viikonpaiva, H.alkamisaika, O. Nimi opiskelija from Harjoitusryhma H, opettaja Ope, opiskelija O, ilmoittautuminen I, kurssi K where H.kurssikoodi=K.koodi and I.kurssikoodi=H.kurssikoodi and I.ryhmanro=H.ryhmanro and Ope.Opetunnus=H. Opettaja and I.Opisknro=O.onumero and K.nimi=‘Java ohjelmointi’ order by H.ryhmanro, O.nimi ;

SQL - liitokset ilmoittautuminen harjoitusryhma opettaja opiskelija I.kurssikoodi=H.kurssikoodi and I.ryhmanro=H.ryhmanro Ope.Opetunnus=H. Opettaja I.Opisknro=O.onumero kurssi H.kurssikoodi=K.koodi K.nimi=‘Java ohjelmointi’

SQL - alikyselyt n Alikyselyllä tarkoitetaan kyselyyn upotettua toista kyselyä. Upotettua kyselyä voidaan käyttää kyselyn from osassa mutta myös where osassa valintaehtojen operandina. n On pidettävä mielessä, että alikyselykin tuottaa tuloksenaan taulun n Alikyselyiden käyttöön valintaehdoissa on omia predikaatteja ja lisätarkenteita, jotka määrittelevät, miten ehdon operandia sovelletaan alikyselyn tulokseen

SQL - alikyselyt n Vertailuoperaatio IN –vertailuoperaatiossa a IN B operandi B on joukko, joten sen tilalle alikysely soveltuu suoraan –a in (alikysely) on tosi, jos vakio a tai sarakkeen a arvo sisältyy alikyselyn tulokseen. –Luennoivat opettajat: select nimi from opettaja where opetunnus in (select luennoija in kurssi) order by nimi;

SQL - alikyselyt –Luennoimattomat opettajat: select nimi from opettaja where opetunnus not in (select luennoija from kurssi) order by nimi; n Standardin mukaan ja Oraclessa IN vertailun osapuolena voi olla myös sarakeyhdistelmä (Solidissa vain yksittäinen sarake).

SQL - alikyselyt n Harjoitusryhmät, joihin ei ole ilmoittautunut ketään select nimi, ryhmanro from kurssi, harjoitusryhma where kurssi.koodi=harjoitusryhma.kurssikoodi and (kurssikoodi, ryhmanro) not in (select kurssikoodi, ryhmanro from ilmoittautuminen) order by nimi, ryhmanro;

SQL - alikyselyt n Muut vertailuoperaatiot ovat yksittäisten arvojen välisiä. Tällaisten osapuolina voi käyttää alikyselyä, jos on varmaa että kysely tuottaa tuloksenaan enintään yhden rivin. Tulee ajoaikainen virhe, jos ei tuotakaan. Tällaisia ovat tyypillisesti yhteenvetokyselyt (myöhemmin) n Lisämääreillä SOME = ANY ja ALL voidaan yksittäisten arvojen vertailuun perustuvaa operaatiota soveltaa arvojoukoon: –SOME = jokin joukon arvo toteuttaa ehdon –ALL = kaikki joukon arvot toteuttavat ehdon

SQL - alikyselyt n Luennoivat opettajat: select nimi from opettaja where opetunnus = SOME (select luennoija from kurssi) order by nimi; n ‘ = SOME’ on siis sama kuin ‘IN’ n Mistä kurssista saa eniten opintoviikkoja? select nimi from kurssi where opintoviikot >= ALL (select opintoviikot from kurssi) order by nimi;

SQL - alikyselyt n Yksittäisen arvon tyhjyyttä testataan IS NULL tai IS NOT NULL predikaateilla n Alikyselyn tyhjyyden testaamiseen ovat tarjolla EXISTS ja NOT EXISTS predikaatit –Exists (alikysely) on tosi, jos alikysely tuottaa ainakin yhden tulosrivin –Not exists (alikysely) on tosi, jos vastaus on tyhjä eli ei yhtään riviä (ei tarjolla Solidissa) n Kyselyn tyhjyyttä on mielekästä testata vain ns. kytkettyjen alikyselyjen yhteydessä

SQL - alikyselyt n Aiemmissa esimerkeissä alikysely on ollut täysin riippumaton sen sisältävästä pääkyselystä (= sen voisi suorittaa erillisenä kyselynä ja sen tulos olisi sama kuin pääkyselyyn upotettuna = se ei viittaa mihinkään pääkyselyn elementtiin) n Kytketyssä alikyselyssä tilanne on toinen: n sitä ei voi suorittaa erillisenä, koska jokin siinä oleva valintaehto tai tulostiedon määritys käyttää hyväkseen pääkyselyn saraketta

SQL - alikyselyt n Luennoivat opettajat: select nimi from opettaja where exists (select luennoija from kurssi where luennoija= opettaja.opetunnus) order by nimi; n Tässä alikysely suoritetaan jokaista opettaja- riviä kohden erikseen ja opettajarivi tulee tulokseen, jos alikyselyn tulos ei ole tyhjä.

SQL - alikyselyt Luennoijat jotka pitävät harjoituksia kursseillaan Select O.nimi from opettaja O, kurssi K where O.opetunnus=K.luennoija and O.opetunnus in (select opettaja from harjoitusryhma where kurssikoodi=K.Koodi); Select O.nimi from opettaja O, kurssi K where O.opetunnus=K.luennoija and exists (select ‘A’ from harjoitusryhma where opettaja=o.opetunnus and kurssikoodi=K.Koodi); Select O.nimi from opettaja O, kurssi K where O.opetunnus=K.luennoija and (O.opetunnus,K.koodi) in (select opettaja, kurssikoodi from harjoitusryhma );

SQL - alikyselyt n Ketjutus select nimi from opettaja where opetunnus in (select opettaja from harjoitusryhma where kurssikoodi in (select koodi from kurssi where nimi like ‘Java%’)); Java-alkuisten kurssien opettajien nimet.

SQL - joukko-opin perusoperaatiot n Kyselyjä voi yhdistää union (yhdiste), intersect (leikkaus) ja except (erotus) operaatioilla. Järjestysmääre koskee koko tulosta. Select …… [union | intersect | except] kysely order by......; –union karsii toistuvat rivit –Oraclessa except:n tilalla minus

SQL - joukko-opin perusoperaatiot n Opiskelijat, jotka ovat myös opettajia select nimi from opettaja intersect select nimi from opiskelija order by nimi;