HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

SQL - STRUCTURED QUERY LANGUAGE

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (11) Outi Virkki Tiedonhallinta

CSE-A1200 Tietokannat

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

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

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

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

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

SQL-kielen perusteet. Tietokantojen perusteet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

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

Tietokantakurssit / TKTL

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

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

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (15) Outi Virkki Tiedonhallinta

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

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

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

Tietokannan suunnittelu

Yleinen SQL. Yleinen SQL. SQL:n kehitys

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

SQL-KIELEN PERUSTEET

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

Tietokannan rakenteen suunnittelu

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Näkymät ja tiedon suojaus

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

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

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

Lohdutus - tietokantadokumentti

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

SQL-KIELEN PERUSTEET

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky

Tietokannat II -kurssin harjoitustyö

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

Relaatiomalli ja -tietokanta

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

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

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

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

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

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

SQL-KIELEN PERUSTEET

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

Tietokannan suunnittelu

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

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

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

Jouni Huotari & Tapani Äijänen Kalvot perustuvat pääosin Ari Hovin SQL-oppaaseen (Docendo 2004)

SELECT-lauseen perusmuoto

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

Opiskeluoikeuksien maaran tiedonkeruu

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

2. Käsiteanalyysi ja relaatiomalli

Luento 2: Tiedostot ja tiedon varastointi

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

5 SQL TIETOKANTAKIELI...33

Transkriptio:

HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset... 13

HELIA 2 (14) SQL Structured Query Language Relaatiotietokantojen määrittely- ja käsittelykieli 1. DDL = Data Definition Language Tietokannan taulujen ja eheyssääntöjen määrittely 2. DML = Data Manipulation Language Tietokannan tietojen haku ja päivitys Historiaa 1970 Codd:n artikkeli relaatiotietokannoista 1974 SEQUEL kyselykieli / IBM 1979 1. kaupallinen SQL-tuote / Relational Software (nyk. Oracle) Nykyään SQL:n sisältäviä relaatiotietokanta- & sovelluskehitysohjelmistoja satoja

HELIA 3 (14) 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 Suurin osa nykyisistä tietokannanhallintajärjestelmistä tukee SQL89:sta on toteuttanut osan SQL92-standardista on toteuttanut standardoimattomia piirteitä eri toimittajien SQL:t eivät välttämättä keskenään yhteensopivia!

HELIA 4 (14) Käyttö a) Itsenäisenä kyselykielenä b) Toisen ohjelmointikielen täydennyksenä c) Osana sovelluskehitysvälinettä DDL - tietokannan luominen ja ylläpito Tietokannan objektien (taulujen ja niihin liittyvien eheys- ym. sääntöjen, indeksien, käyttäjätunnusten, näkymien, ) luominen ja ylläpito create-, alter-, drop lauseet Käyttöoikeuksien hallinta grant-, revoke-lauseet DML - tietojen päivitys ja hyödyntäminen 1. Tietojen haku select lause 2. Tietojen päivitys insert-, update-, delete laus. 3. Tapahtumankäsittely commit-, rollback lauseet

HELIA 5 (14) DDL Tietokantaobjektien määrittely tietokannan (rakenteiden) luominen ja ylläpito 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;

HELIA 6 (14) SQL:n tietotyypit SQL-89 SQL-92 Access Solid 2 Tekstikentät char /character character varying nchar nvarchar Eksaktit numerokentät numeric dec / decimal int / integer smallint Likiarvoiset numerokentät float real double precision char long decimal integer tinyint Aikakentät date time timestamp time with timezone timestamp with timezone interval Muut kentät Bit

HELIA 7 (14) Bit varying

HELIA 8 (14) Esim. Kurssihallinto OPETTAJA Opettajano Ope_sukunimi Ope_etunimi Ope_lyhenne Ope_Puh OPISKELIJA Opiskelijano Opi_sukunimi Opi_etunimi Opi_katuosoite Opi_postino Opi_aloitusvuosi KURSSI Kurssino Kurssin_nimi Vastuuopettajano KURSSITOTEUTUS Kurssino Toteutusno Kurs_Opettajano Aloitus_pvm ILMOITTAUTUMINEN Kurssino Toteutusno Opiskelijano Arvosana Arvosana_pvm

HELIA 9 (14) Eheyssääntöjen määrittely Pääavain [CONSTRAINT nimi] PRIMARY KEY (sarakelista) Viiteavain [CONSTRAINT nimi] FOREIGN KEY (sarakelista) REFERENCES [omistaja.]perustaulu[(sarakelista)] [ON UPDATE [ON DELETE {CASCADE SET NULL SET DEFAULT NO ACTION } ] {CASCADE SET NULL SET DEFAULT NO ACTION } ] Arvojoukkoeheyssääntö [CONSTRAINT nimi] UNIQUE (sarakelista) [,...] [CONSTRAINT nimi] CHECK (riviehto) [,...]

HELIA 10 (14) Esim. CREATE TABLE property_for_rent ( pno VARCHAR (5) NOT NULL, street VARCHAR (25) NOT NULL, area VARCHAR(15), city VARCHAR(15) NOT NULL, pcode VARCHAR(8), type CHAR(1) NOT NULL DEFAULT F, rooms SMALLINT NOT NULL DEFAULT 4, rent DECIMAL(6,2) NOT NULL DEFAULT 0, ono VARCHAR(5) NOT NULL, sno VARCHAR(5) CONSTRANT staff_not_handling_too_much CHECK (NOT EXISTS SELECT sno FROM property_for_rent GROUP BY sno HAVING COUNT(*) > 10)), bno VARCHAR(3) NOT NULL, PRIMARY KEY (pno), FOREIGN KEY (sno) REFERENCES staff ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (ono) REFERENCES owner ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (bno) REFERENCES branch ON DELETE NO ACTION ON UPDATE CASCADE);

HELIA 11 (14) Indeksin määrittely Indeksin luominen CREATE [UNIQUE] INDEX index_name ON table_name (column [ASC DESC] [,...]) unique: hakemistoon ei voi laittaa hakemistokenttien duplikaatteja Esim. pääavaimen mukaisen hakemiston luonnissa käytetään UNIQUE-määrettä CREATE UNIQUE INDEX sno_ind ON staff (sno); CREATE UNIQUE INDEX pno_ind ON property_for_rent (pno); Indeksin poistaminen DROP INDEX rent_ind;

HELIA 12 (14) Esim. Kurssihallinto Laadi eheysmäärittelyt Luo indeksit OPETTAJA Opettajano Ope_sukunimi Ope_etunimi Ope_lyhenne Ope_Puh OPISKELIJA Opiskelijano Opi_sukunimi Opi_etunimi Opi_katuosoite Opi_postino Opi_aloitusvuosi KURSSI Kurssino Kurssin_nimi Vastuuopettajano KURSSITOTEUTUS Kurssino Toteutusno Kurs_Opettajano Aloitus_pvm ILMOITTAUTUMINEN Kurssino Toteutusno Opiskelijano Arvosana Arvosana_pvm

HELIA 13 (14) Syntaksikuvaukset 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)] [ON UPDATE {CASCADE SET NULL SET DEFAULT NO ACTION } ] [ON DELETE [,...] } {CASCADE SET NULL SET DEFAULT NO ACTION } ] { [, [CONSTRAINT nimi] CHECK (riviehto) ] [,...] } )

HELIA 14 (14) Taulun muuttaminen ALTER TABLE Puuttuu toistaiseksi... Taulun poistaminen DROP TABLE table_name [RESTRICT CASCADE ] RESTRICT: poisto vain silloin, jos tauluun ei viitata mistään muusta taulusta CASCADE: poistetaan myös sellaiset rivit, joissa viitataan poistettuun tauluun Esim. DROP TABLE property_for_rent;