HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

SQL - STRUCTURED QUERY LANGUAGE

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

HELIA 1 (72) Räty, Virkki, Kurki Lahtinen Tiedonhallinta

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

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

CSE-A1200 Tietokannat

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

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

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

SELECT-lauseen perusmuoto

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

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

SQL-kielen perusteet. Tietokantojen perusteet

TIETOKANTOJEN PERUSTEET MARKKU SUNI

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

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

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

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

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Tietokantakurssit / TKTL

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

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

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

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Lohdutus - tietokantadokumentti

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

Näkymät ja tiedon suojaus

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

Tietokannan rakenteen suunnittelu

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

Tietokannan suunnittelu

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

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

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

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

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

Tietokannat II -kurssin harjoitustyö

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Yleinen SQL. Yleinen SQL. SQL:n kehitys

OpenOffice.org Base 3.1.0

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Liitokset - haut useaan tauluun

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Luento 2: Tiedostot ja tiedon varastointi

SQL:N PERUSTEET MARKKU SUNI

2. Käsiteanalyysi ja relaatiomalli

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

Relaatiomalli ja -tietokanta

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Kyselyn yleisrakenne:

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Makrojen mystinen maailma lyhyt oppimäärä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

HELIA 1 (15) Outi Virkki Tiedonhallinta

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Transkriptio:

HAAGA-HELIA TIKO - Heti09 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n keskeiset tietotyypit... 8 SQL:n keskeiset tietotyypit ja tietokantatuotteet... 9 Eheyssääntöjen määrittely... 10 Syntaksikuvaukset... 13 Backus Naur Form... 13 Taulun luonti... 14 Taulun muuttaminen... 15 Taulun poistaminen... 16 DML... 17 Lisäys, INSERT... 18 Poisto, DELETE... 21 Haku, SELECT... 22

HAAGA-HELIA TIKO - Heti09 2 (22) SQL ~ Structured Query Language ~ Relaatiotietokantojen määrittely- ja käsittelykieli SQL on ensimmäinen ja ainoa laajasti hyväksytty tietokantakieli 1. DDL = Data Definition Language Tietokannan taulujen ja eheyssääntöjen määrittely 2. DML = Data Manipulation Language Tietokannan tietojen haku ja päivitys 3. DCL = Data Control Language Käyttöoikeuksein hallinta ja transaktiokäsittely Historiaa 1970 Codd:n artikkeli relaatiotietokannoista 1974 SEQUEL kyselykieli / IBM 1979 1. kaupallinen SQL-tuote: Relational Software (nyk. Oracle) 1986 1. standardi Nykyään SQL:n sisältäviä relaatiotietokanta- (& sovelluskehitysohjelmistoja) satoja

HAAGA-HELIA TIKO - Heti09 3 (22) Standardit ISOn (International Standards Organization) ja ANSIn (American National Standard Institute) hyväksymä standardi 1. SQL86 - SQL1 uudistettu 1989 2. SQL92 - SQL2 3. SQL99 - SQL3 4. SQL:2003 mm. XML-tuki 5. SQL:2008 Suurin osa nykyisistä tietokannanhallintajärjestelmistä tukee SQL89:ä on toteuttanut osan SQL92 -standardista on toteuttanut osan SQL99 -standardista on toteuttanut standardoimattomia piirteitä eri toimittajien SQL:t eivät välttämättä ole keskenään kokonaan yhteensopivia! suuri osa ymmärtää standardin mukaista SQL:ää (mutta ei sen kaikkia ominaisuuksia)

HAAGA-HELIA TIKO - Heti09 4 (22) Käyttö 1. Itsenäisenä kyselykielenä (interaktiivisesti työasemalta) 2. Toisen ohjelmointikielen täydennyksenä (upotettuna) 3. Osana sovelluskehitysvälinettä DDL - tietokannan luominen ja ylläpito Tietokannan objektien (taulujen ja niihin liittyvien eheyssääntöjen ym. tietokantaobjektien) luominen, muuttaminen & poisto: create-, alter-, drop lauseet DML - tietojen päivitys ja hyödyntäminen 1. Tietojen haku select lause 2. Tietojen päivitys insert-, update-, delete lauseet DCL - käyttöoikeuksien ja transaktioiden hallinta Transaktiokäsittely commit-, rollback lauseet Käyttöoikeuksien hallinta: grant-, revoke-lauseet

HAAGA-HELIA TIKO - Heti09 5 (22) Sql-komentojen kirjoittaminen Varatut sanat kirjoitetaan ja käytetään täsmälleen syntaksin mukaan voidaan kirjoittaa isoilla tai pienillä kirjaimilla (yleensä isoilla kirjaimilla ) Käyttäjän määrittelemät sanat esim. sarakkeiden ja taulujen nimet voidaan kirjoittaa isoilla tai pienillä kirjaimilla (yleensä pienillä kirjaimilla) Dataa käsiteltäessä kirjaimet kirjoitetaan isoilla tai pienillä sen mukaan, miten ne on tallennettu tietokantaan Esim: WHERE sukunimi = SMITH vrt. WHERE sukunimi = 'Smith'

HAAGA-HELIA TIKO - Heti09 6 (22) lauseiden (clause) kirjoittaminen on vapaata, mutta seuraavien ohjeiden noudattamista suositellaan: 1. Kukin määre lauseessa alkaa uudelta riviltä 2. Kukin määre lauseessa samalla linjalla Esim. SELECT sno, fname, lname,position FROM staff WHERE position = Manager ; 3. Jos määre sisältää useita osia, käytetään sisennystä, jotta määreen merkitys tulisi paremmin näkyviin Esim. SELECT sno, fname, lname, position, bno FROM staff WHERE position = Manager ;

HAAGA-HELIA TIKO - Heti09 7 (22) DDL Tietokantaobjektien määrittely tietokannan (rakenteiden) luominen ja ylläpito Esim: Create lause CREATE TABLE opettaja (opettajanro INTEGER PRIMARY KEY, etunimi VARCHAR(20) NOT NULL, sukunimi VARCHAR(30) NOT NULL, puhelin CHAR(15), lyhenne CHAR(10) NOT NULL ); Alter lause ALTER TABLE opettaja ADD (syntpvm DATE); ALTER TABLE opettaja ALTER (lyhenne CHAR(6)); Drop lause DROP TABLE opettaja;

HAAGA-HELIA TIKO - Heti09 8 (22) SQL:n keskeiset tietotyypit Merkkijonot CHAR (n) CHARACTER VARCHAR(n) n:n mittainen merkkijono (kiinteämittainen) korkeintaan n:n mittainen merkkijono (vaihtuvamittainen) CHARACTER VARYING n välillä 1..255 SQL:2008 ei ota enää kantaa merkkijonon pituuteen! Esim. hloid CHAR (5) titteli VARCHAR (30) Tarkka luku NUMERIC INTEGER kokonaisluku [-2 147 483648, 2 147 483647] SMALLINTEGER kokonaisluku [-32 768, 32 767] DECIMAL desimaaliluku [pituus[,desimaalin pituus]] Esim. Hloid SMALLINT Palkka DECIMAL (7,2) ==> ylin arvo 99 999.99 Aika DATE TIME [time_precision] [WITH TIME ZONE] TIMESTAMP [time_precision] [WITH TIME ZONE] INTERVAL time_precision Päivämäärä Kellonaika: tunti minuutti ja sekunti Kalenteriaika +kellonaika sekuntien tarkkuus, oletus 0 eli kokonaiset sekunnit Esim. tentti_pvm DATE aloitus_aika TIME

HAAGA-HELIA TIKO - Heti09 9 (22) SQL:n keskeiset tietotyypit ja tietokantatuotteet SQL Selite SQL Server Oracle DB2 2012 (sisäiset) CHAR(n) merkkijono, 1<=n<=8000 1<=n<=2000 1<=n<=254 kiinteämittainen VARCHAR[2](n) merkkijono, n<=8000 n<=4000 n<=32672 vaihtuvamittainen XML XML dokumentti < 2 GB XMLtype < 2 GB DEC[IMAL] (p,s) 1<=p<=38-1 <=p<=31 NUMERIC Decimal-tyypin synonyymi OK - OK NUMBER [(p,s)] 1<=p<=38 SMALLINT[EGER] 16 bit kokonaisluku -32768.. 32767 OK - OK INT[EGER] 32 bit kokonaisluku OK - OK -2,147,483,648.. 2,147,483,647 FLOAT (p) Liukuluku, tarkkuus: OK = number = double p<=24 -> 7 merk nroa 25<=p<=53 -> 15 m. nroa REAL 32 bit R E+/-38 Binary_float R E+/-38 BOOLEAN BIT - - DATETIME Date & time Ks DATE - DATE päivämäärä OK Datetime OK TIME kellonaika OK - OK TIMESTAMP aikaleima Eri merkitys! OK OK INTERVAL aikaväli - INTERVAL YEAR INTERVAL DAY -

HAAGA-HELIA TIKO - Heti09 10 (22) Eheyssääntöjen määrittely Eheyssääntö voidaan kirjoittaa a) Taulukohtaisesti (onnistuu aina) b) Sarakekohtaisesti (jos sääntö kohdistuu vain 1 sarakkeeseen) Pääavain a) [CONSTRAINT nimi] PRIMARY KEY (sarakelista) b) PRIMARY KEY Viiteavain a) [CONSTRAINT nimi] FOREIGN KEY (sarakelista) REFERENCES [omistaja.]perustaulu[(sarakelista)] b) FOREIGN KEY REFERENCES [omistaja.]perustaulu[(sarakelista)] Huom! Hakasulut tarkoittavat vapaavalintaista komennon osaa Esim. [constraint nimi]

HAAGA-HELIA TIKO - Heti09 11 (22) Esim. Taulukohtaiset eheyssäännöt CREATE TABLE property_for_rent (pno VARCHAR (5) NOT NULL,street VARCHAR (25) NOT NULL,city VARCHAR(15) NOT NULL,type CHAR(1) NOT NULL DEFAULT F,rooms SMALLINT NOT NULL DEFAULT 4,rent DECIMAL(6,2) NOT NULL DEFAULT 0,checked DATE NOT NULL,ono VARCHAR(5) NOT NULL,sno VARCHAR(5),bno VARCHAR(3) NOT NULL,PRIMARY KEY (pno),foreign KEY (sno) REFERENCES staff,foreign KEY (ono) REFERENCES owner,foreign KEY (bno) REFERENCES branch ); Esim. Sarakekohtaiset eheyssäännöt CREATE TABLE property_for_rent (pno VARCHAR (5) NOT NULL PRIMARY KEY,street VARCHAR (25) NOT NULL,city VARCHAR(15) NOT NULL,type CHAR(1) NOT NULL DEFAULT F,rooms SMALLINT NOT NULL DEFAULT 4,rent DECIMAL(6,2) NOT NULL DEFAULT 0,checked DATE NOT NULL,ono VARCHAR(5) NOT NULL FOREIGN KEY REFERENCES owner,sno VARCHAR(5) FOREIGN KEY REFERENCES staff,bno VARCHAR(3) NOT NULL FOREIGN KEY REFERENCES branch );

HAAGA-HELIA TIKO - Heti09 12 (22) Esim. Kurssihallinto OPETTAJA Opettajano Ope_sukunimi Ope_etunimi Ope_lyhenne Ope_puh KURSSI Kurssino Kurssin_nimi Vastuuopettajano KURSSITOTEUTUS Kurssino Toteutusno Kurs_Opettajano Aloitus_pvm OPISKELIJA Opiskelijano Opi_sukunimi Opi_etunimi Opi_katuosoite Opi_postino Opi_aloitusvuosi CREATE TABLE opettaja (opettajano INTEGER PRIMARY KEY,ope_sukunimi VARCHAR(30) NOT NULL,ope_etunimi VARCHAR(20) NOT NULL,ope_lyhenne CHAR(5) VARCHAR(20),ope_puh ); CREATE TABLE kurssitoteutus (kurssino CHAR(6) NOT NULL,toteutusno INT NOT NULL,kurs_opettajano INT NOT NULL,aloitus_pvm DATE NOT NULL,CONSTRAINT pk_krstot PRIMARY KEY (kurssino,toteutusno),constraint fk_krstot_krs FOREIGN KEY (kurssino) REFERENCES kurssi(kurssino),constraint fk_krstot_ope FOREIGN KEY (kurs_opettajano) REFERENCES opettaja(opettajano) ); ILMOITTAUTUMINEN Kurssino Toteutusno Opiskelijano Arvosana Arvosana_pvm

HAAGA-HELIA TIKO - Heti09 13 (22) Syntaksikuvaukset Backus Naur Form ~ BNF ~ SQL-syntaksin kuvauksessa käytetty kuvauskieli: 1. ISOT KIRJAIMET esittävät varattuja sanoja; ne on kirjoitettava määrämuotoisina 2. pienet kirjaimet esittävät käyttäjän määrittämiä sanoja 3. Pystyviiva tarkoittaa valintaa vaihtoehtojen välillä Esim. a b c a tai b tai c 4. Aaltosulut tarkoittavat vaadittua (=pakollista) elementtiä Esim. { a } 5. Hakasulut tarkoittavat vapaavalintaista elementtiä Esim. [ a ] 6. Kolme peräkkäistä pistettä (...) tarkoittavat valinnaista toistoa 0 tai useamman kerran Esim. { a b } [, c...]

HAAGA-HELIA TIKO - Heti09 14 (22) Taulun luonti CREATE TABLE [omistaja.] taulu ( {sarakenimi tietotyyppi [,...] [DEFAULT vakio systeemimuuttuja] [NOT NULL] [[CONSTRAINT nimi] (sarake-ehto)] [,[CONSTRAINT nimi] PRIMARY KEY (sarakelista)] {[,[CONSTRAINT nimi] UNIQUE (sarakelista)] [,...]} {[,[CONSTRAINT nimi] FOREIGN KEY (sarakelista) [,...] } ); REFERENCES [omistaja.]perustaulu[(sarakelista)]

HAAGA-HELIA TIKO - Heti09 15 (22) Taulun muuttaminen ALTER TABLE taulunimi ADD ( {sarakenimi tietotyyppi [,...] [DEFAULT vakio systeemimuuttuja] [NOT NULL] [[CONSTRAINT nimi] (sarake-ehto)] [,[CONSTRAINT nimi] PRIMARY KEY (sarakelista)] {[,[CONSTRAINT nimi] UNIQUE (sarakelista)] [,...]} {[,[CONSTRAINT nimi] FOREIGN KEY (sarakelista) [,...] } ); REFERENCES [omistaja.]perustaulu[(sarakelista)] ALTER TABLE taulunimi ALTER ( {sarakenimi [tietotyyppi] [DEFAULT vakio systeemimuuttuja] [NOT NULL] [[CONSTRAINT nimi] (sarake-ehto)] [,...] [,[CONSTRAINT nimi] PRIMARY KEY (sarakelista)] {[,[CONSTRAINT nimi] UNIQUE (sarakelista)] [,...]} {[,[CONSTRAINT nimi] FOREIGN KEY (sarakelista) [,...] } ); REFERENCES [omistaja.]perustaulu[(sarakelista)]

HAAGA-HELIA TIKO - Heti09 16 (22) Taulun poistaminen DROP TABLE taulunimi [RESTRICT CASCADE ] ; RESTRICT: poisto vain silloin, jos tauluun ei viitata mistään muusta taulusta CASCADE: poistetaan myös sellaiset rivit, joissa viitataan poistettavaan tauluun

HAAGA-HELIA TIKO - Heti09 17 (22) DML ~ Data Manipulation ~ Tietojen käsittely INSERT UPDATE DELETE SELECT tiedon (rivien) lisäys tauluun taulussa olevan tiedon muuttaminen / päivitys tiedon (rivien) poisto taulusta kysely tietokannasta Literaalit ovat SQL:ssä käytettäviä vakioita Niitä erotetaan tässä kaksi päätyyppiä: 1. Yksinkertaisissa lainausmerkeissä olevat ( ) Ei-numeeriset arvot Manager Päivämäärät 2000-09-20 2. Ilman lainausmerkkejä olevat numeeriset arvot 45

HAAGA-HELIA TIKO - Heti09 18 (22) Lisäys, INSERT kahdenlaisia lisäyksiä: a) sallii yhden rivin lisäämisen nimettyyn tauluun b) useamman rivin kopiointi taulusta toiseen (tätä käsitellään kurssin lopulla)

HAAGA-HELIA TIKO - Heti09 19 (22) a) Yhden rivin lisäämisen nimettyyn tauluun INSERT INTO table_name [ (column_list) ] VALUES (data_value_list) ; table_name column_list data_value_list taulun (tai näkymän) nimi yksi tai useampi sarakenimi pilkulla erotettuna / vapaaehtoinen: jos puuttuu SQL hakee listan CREATE TABLE kuvauksen mukaan lisättäviä arvoja on oltava yhtä monta kuin taululla on sarakkeita jos sarakenimiä on puuttuvat sarakkeet alustetaan oletusarvoilla tai NULL-arvoilla yhteensopiva column_list:n kanssa: arvojen lukumäärä sama järjestys sama arvon kuuluttava ko. sarakkeen arvojoukkoon sovelluksen koodiin sarakenimet kannattaa aina laittaa

HAAGA-HELIA TIKO - Heti09 20 (22) Esim. Lisää staff-tauluun uusi henkilö. INSERT INTO staff VALUES ( SG16, Alan,, Brown,, 67 Endrick Rd, Glasgow G32 9QX, 0141-211-3001, Assistent, M,DATE 1957-05-25,8300, WN848391H, B3 ); Esim. Lisää työntekijä, jonka tiedoista tiedetään vain numero, nimi, asema, sukupuoli, palkka ja haarakonttori INSERT INTO staff (sno, fname, lname, position, sex, salary, bno) VALUES ( SG44, Anne, Jones, Assistent, F, 8300, B3 );

HAAGA-HELIA TIKO - Heti09 21 (22) Poisto, DELETE DELETE FROM table_name [WHERE search_condition]; Jos WHERE-määre esiintyy, poistetaan vain ehdon täyttävät rivit, muuten poistetaan taulun kaikki rivit Esim. Poista kaikki asuntokohteiden näytöt. DELETE FROM viewing; Esim. Poista kaikki asuntokohteelle PG4 tapahtuneet näytöt. DELETE FROM viewing WHERE pno= PG4 ;

HAAGA-HELIA TIKO - Heti09 22 (22) Haku, SELECT SELECT-lause etsii ja näyttää tietoja yhdestä tai useammasta tietokannan taulusta SELECT [DISTINCT ALL] { * [column_expression [AS new_name]] [,...]} FROM table_name [alias] [,...] [WHERE condition] [GROUP BY comlumn_list ] [HAVING condition] [ORDER BY column_list] Esim. SELECT * FROM staff; ALL on oletusarvo, eli haetaan kaikki mitä löytyy; ALL määrettä ei yleensä kirjoiteta SQL-lauseeseen SELECT-komentoon tutustutaan tarkemmin seuraavilla viikoilla!