Tietokannan sisällön käsittely (DML)

SQL:n tärkein osa on tietokannan tietojen hakemiseen, muuttamiseen, lisäämiseen ja poistamiseen liittyvät käskyt, joita kutsutaan SQL:n Data Manipulation Language (DML) –osaksi.

Tämän luvun esimerkeissä käytettävät taulut, niiden luominen ja niiden sisältämät tietueet on listattu seuraavassa:

DROP TABLE Tenttii;
DROP TABLE Kurssi
;
DROP TABLE Puhelinnumero
;
DROP TABLE Opiskelija
;
DROP TABLE Postinumero
;
DROP TABLE Laitos
;
DROP TABLE Tiedekunta
;
CREATE TABLE Postinumero (
Postinumero CHAR(5) NOT NULL,
Postitoimipaikka VARCHAR(12) NOT NULL,
CONSTRAINT Postinumero_PK
PRIMARY KEY (Postinumero)
)
;
CREATE TABLE Tiedekunta (
TiedekuntaID INTEGER NOT NULL,
Nimi VARCHAR(64) NOT NULL,
CONSTRAINT Tiedekunta_PK
PRIMARY KEY (TiedekuntaID)
)
;
CREATE TABLE Laitos (
LaitosID INTEGER NOT NULL,
Nimi VARCHAR(32) NOT NULL,
Tiedekunta INTEGER NOT NULL,
CONSTRAINT Laitos_PK
PRIMARY KEY (LaitosID),
CONSTRAINT Laitos_FK_T
FOREIGN KEY (Tiedekunta)
REFERENCES Tiedekunta (TiedekuntaID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
;
CREATE TABLE Opiskelija (
hetu CHAR(11) NOT NULL,
Sahkoposti VARCHAR(20),
Etunimi VARCHAR(7) NOT NULL,
Sukunimi VARCHAR(12) NOT NULL,
Lahiosoite VARCHAR(12) NOT NULL,
Pnro CHAR(5) NOT NULL,
Aloitus SMALLINT NOT NULL,
Laitos INTEGER NOT NULL,
CONSTRAINT Opiskelija_PK
PRIMARY KEY (hetu),
CONSTRAINT Opiskelija_FK_L
FOREIGN KEY (Laitos)
REFERENCES Laitos (LaitosID)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT Opiskelija_FK_P
FOREIGN KEY (Pnro)
REFERENCES Postinumero (Postinumero)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
;
CREATE TABLE Puhelinnumero (
hetu CHAR(11) NOT NULL,
Puhelinnumero VARCHAR(12) NOT NULL,
CONSTRAINT Puhelinnumero_PK
PRIMARY KEY (hetu, Puhelinnumero),
CONSTRAINT Puhelinnumero_FK_L
FOREIGN KEY (hetu)
REFERENCES Opiskelija (hetu)
ON DELETE CASCADE
ON UPDATE NO ACTION
)
;
CREATE TABLE Kurssi (
Kurssikoodi CHAR(6) NOT NULL,
Nimi VARCHAR(32) NOT NULL,
Laajuus NUMERIC(3,2) NOT NULL,
Laitos INTEGER NOT NULL,
CONSTRAINT Kurssi_PK
PRIMARY KEY (Kurssikoodi),
CONSTRAINT Kurssi_FK_L
FOREIGN KEY (Laitos)
REFERENCES Laitos (LaitosID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
;
CREATE TABLE Tenttii (
Opiskelija CHAR(11) NOT NULL,
Kurssi CHAR(6) NOT NULL,
Paivamaara DATE NOT NULL,
Arvosana NUMERIC(3,2) NOT NULL,
CONSTRAINT Tenttii_PK
PRIMARY KEY (Opiskelija, Kurssi, Paivamaara),
CONSTRAINT Tenttii_FK_O
FOREIGN KEY (Opiskelija)
REFERENCES Opiskelija (hetu)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT Tenttii_FK_K
FOREIGN KEY (Kurssi)
REFERENCES Kurssi (Kurssikoodi)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
;
DELETE FROM Tenttii;
DELETE FROM Kurssi;
DELETE FROM Puhelinnumero;
DELETE FROM Opiskelija;
DELETE FROM Postinumero;
DELETE FROM Laitos;
DELETE FROM Tiedekunta;
INSERT INTO Tiedekunta VALUES (1, 'Informaatioteknologian tiedekunta')
;
INSERT INTO Tiedekunta VALUES (2, 'Humanistinen tiedekunta')
;
INSERT INTO Tiedekunta VALUES (3, 'Kasvatustieteiden tiedekunta')
;
INSERT INTO Laitos VALUES (1, 'Tietotekniikan laitos', 1)
;
INSERT INTO Laitos VALUES (2, 'Tietojärjestelmätieteen laitos', 1)
;
INSERT INTO Laitos VALUES (3, 'Englannin kielen laitos', 2)
;
INSERT INTO Laitos VALUES (4, 'Kirjallisuuden laitos', 2)
;
INSERT INTO Laitos VALUES (5, 'Kasvatustieteen laitos', 3)
;
INSERT INTO Laitos VALUES (6, 'Opettajankoulutuslaitos', 3)
;
INSERT INTO Postinumero VALUES ('40700', 'Jyväskylä')
;
INSERT INTO Postinumero VALUES ('40740', 'Jyväskylä')
;
INSERT INTO Postinumero VALUES ('40351', 'Jyväskylä')
;
INSERT INTO Postinumero VALUES ('31600', 'Jokioinen')
;
INSERT INTO Postinumero VALUES ('74700', 'Kiuruvesi')
;
INSERT INTO Opiskelija VALUES ('111111-111P', 'tommi.j.lahtonen@jyu.fi', 'Tommi', 'Lahtonen', 'TNT 9 Ö 666', '40740', 1995, 1)
;
INSERT INTO Opiskelija VALUES ('121212-112P', 'peheinon@mit.jyu.fi', 'Petri', 'Heinonen', 'Agora', '40351', 1992, 1)
;
INSERT INTO Opiskelija VALUES ('230173-000L', 'foo@bar.invalid', 'Teemu', 'Tieteilijä', 'TNT 9 Y 123', '40740', 1999, 2)
;
INSERT INTO Opiskelija VALUES ('010101-011P', 'bar@foo.invalid', 'Taina', 'Tieteilijä', 'TNT 9 Y 124', '40740', 1996, 2)
;
INSERT INTO Opiskelija VALUES ('111112-111P', 'barfoo@bar.invalid', 'Kaisa', 'Kielinero', 'Keskusta', '40700', 1995, 3)
;
INSERT INTO Opiskelija VALUES ('111113-111P', 'barfoo@bar.invalid', 'Keijo', 'Kirjailija', 'Keskusta', '40700', 1997, 4)
;
INSERT INTO Opiskelija VALUES ('111114-111P', NULL, 'Kimmo', 'Kasvattaja', 'TNT 9 A 000', '40740', 1998, 5)
;
INSERT INTO Opiskelija VALUES ('111115-111P', NULL, 'Olli', 'Opettaja', 'Keskusta', '40700', 2000, 6)
;
INSERT INTO Puhelinnumero VALUES ('111111-111P', '050-1232746')
;
INSERT INTO Puhelinnumero VALUES ('121212-112P', '050-5858585')
;
INSERT INTO Puhelinnumero VALUES ('230173-000L', '040-123454')
;
INSERT INTO Puhelinnumero VALUES ('111112-111P', '040-986238')
;
INSERT INTO Puhelinnumero VALUES ('230173-000L', '040-891768')
;
INSERT INTO Puhelinnumero VALUES ('111115-111P', '050-278823')
;
INSERT INTO Kurssi VALUES ('TIE150', 'Tietokannat', 2, 1)
;
INSERT INTO Kurssi VALUES ('TIE160', 'Mikrotietokoneiden ohjelmistot', 2, 1)
;
INSERT INTO Kurssi VALUES ('TIE001', 'Tietotekniikan propedeuttinen', 2, 1)
;
INSERT INTO Kurssi VALUES ('TIE101', 'Tietoverkot työvälineenä', 2, 1)
;
INSERT INTO Kurssi VALUES ('TIE140', 'Mikrotietokonelaitteistot', 2, 1)
;
INSERT INTO Kurssi VALUES ('TIE110', 'Johdatus ohjelmointiin', 3, 1)
;
INSERT INTO Kurssi VALUES ('TIE120', 'Ohjelmointi++', 5, 1)
;
INSERT INTO Kurssi VALUES ('TIE130', 'Tietotekniikan perusteet', 3, 1)
;
INSERT INTO Tenttii VALUES ('111111-111P', 'TIE150', '1.1.1997', 3)
;
INSERT INTO Tenttii VALUES ('121212-112P', 'TIE150', '1.1.1998', 2.75)
;
INSERT INTO Tenttii VALUES ('230173-000L', 'TIE150', '1.1.1999', 2.5)
;
INSERT INTO Tenttii VALUES ('010101-011P', 'TIE150', '1.1.1997', 2.25)
;
INSERT INTO Tenttii VALUES ('111112-111P', 'TIE150', '1.1.1997', 2)
;
INSERT INTO Tenttii VALUES ('111113-111P', 'TIE150', '1.1.1997', 1.75)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE150', '1.1.1997', 1.5)
;
INSERT INTO Tenttii VALUES ('111111-111P', 'TIE160', '1.1.2000', 2)
;
INSERT INTO Tenttii VALUES ('121212-112P', 'TIE160', '1.1.2000', 1.75)
;
INSERT INTO Tenttii VALUES ('230173-000L', 'TIE160', '1.1.2000', 1.5)
;
INSERT INTO Tenttii VALUES ('010101-011P', 'TIE160', '1.1.2000', 1.25)
;
INSERT INTO Tenttii VALUES ('111112-111P', 'TIE160', '1.1.2000', 3)
;
INSERT INTO Tenttii VALUES ('111113-111P', 'TIE160', '1.1.2000', 2.75)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE160', '1.1.2000', 2.5)
;
INSERT INTO Tenttii VALUES ('111111-111P', 'TIE110', '1.1.2000', 2)
;
INSERT INTO Tenttii VALUES ('121212-112P', 'TIE110', '1.2.2000', 0)
;
INSERT INTO Tenttii VALUES ('230173-000L', 'TIE110', '1.3.2000', 2)
;
INSERT INTO Tenttii VALUES ('010101-011P', 'TIE110', '1.4.2000', 0)
;
INSERT INTO Tenttii VALUES ('111112-111P', 'TIE110', '1.5.2000', 3)
;
INSERT INTO Tenttii VALUES ('111113-111P', 'TIE110', '1.6.2000', 0)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE110', '1.7.2000', 0)
;
INSERT INTO Tenttii VALUES ('111111-111P', 'TIE101', '1.1.2000', 0)
;
INSERT INTO Tenttii VALUES ('121212-112P', 'TIE101', '1.1.2000', 1.75)
;
INSERT INTO Tenttii VALUES ('230173-000L', 'TIE001', '1.1.2000', 1.5)
;
INSERT INTO Tenttii VALUES ('010101-011P', 'TIE001', '1.1.2000', 1.25)
;
INSERT INTO Tenttii VALUES ('111112-111P', 'TIE001', '1.1.2000', 0)
;
INSERT INTO Tenttii VALUES ('111113-111P', 'TIE120', '1.1.2000', 0)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE120', '1.1.2000', 2.5)
;
INSERT INTO Tenttii VALUES ('111111-111P', 'TIE101', '1.2.2000', 1)
;
INSERT INTO Tenttii VALUES ('121212-112P', 'TIE101', '1.2.2000', 2.75)
;
INSERT INTO Tenttii VALUES ('230173-000L', 'TIE001', '1.2.2000', 2.5)
;
INSERT INTO Tenttii VALUES ('010101-011P', 'TIE001', '1.2.2000', 2.25)
;
INSERT INTO Tenttii VALUES ('111112-111P', 'TIE001', '1.2.2000', 2)
;
INSERT INTO Tenttii VALUES ('111113-111P', 'TIE120', '1.2.2000', 3)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE120', '1.2.2000', 2.75)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE120', '1.12.2000', 2.75)
;
INSERT INTO Tenttii VALUES ('111114-111P', 'TIE120', '13.12.2000', 3)

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/tiedonhallinta/sql/dml/index0.html
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2004-11-05 15:23:40
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto