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_PKPRIMARY KEY (Postinumero));CREATE TABLE Tiedekunta (TiedekuntaID INTEGER NOT NULL,Nimi VARCHAR(64) NOT NULL,CONSTRAINT Tiedekunta_PKPRIMARY KEY (TiedekuntaID));CREATE TABLE Laitos (LaitosID INTEGER NOT NULL,Nimi VARCHAR(32) NOT NULL,Tiedekunta INTEGER NOT NULL,CONSTRAINT Laitos_PKPRIMARY KEY (LaitosID),CONSTRAINT Laitos_FK_TFOREIGN KEY (Tiedekunta)REFERENCES Tiedekunta (TiedekuntaID)ON DELETE NO ACTIONON 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_PKPRIMARY KEY (hetu),CONSTRAINT Opiskelija_FK_LFOREIGN KEY (Laitos)REFERENCES Laitos (LaitosID)ON DELETE NO ACTIONON UPDATE NO ACTION,CONSTRAINT Opiskelija_FK_PFOREIGN KEY (Pnro)REFERENCES Postinumero (Postinumero)ON DELETE NO ACTIONON UPDATE NO ACTION);CREATE TABLE Puhelinnumero (hetu CHAR(11) NOT NULL,Puhelinnumero VARCHAR(12) NOT NULL,CONSTRAINT Puhelinnumero_PKPRIMARY KEY (hetu, Puhelinnumero),CONSTRAINT Puhelinnumero_FK_LFOREIGN KEY (hetu)REFERENCES Opiskelija (hetu)ON DELETE CASCADEON 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_PKPRIMARY KEY (Kurssikoodi),CONSTRAINT Kurssi_FK_LFOREIGN KEY (Laitos)REFERENCES Laitos (LaitosID)ON DELETE NO ACTIONON 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_PKPRIMARY KEY (Opiskelija, Kurssi, Paivamaara),CONSTRAINT Tenttii_FK_OFOREIGN KEY (Opiskelija)REFERENCES Opiskelija (hetu)ON DELETE NO ACTIONON UPDATE NO ACTION,CONSTRAINT Tenttii_FK_KFOREIGN KEY (Kurssi)REFERENCES Kurssi (Kurssikoodi)ON DELETE NO ACTIONON 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