tdt4145

Forelesning 31. januar - SQL


SQL

DDL - Data Definiton Language

Hundedatabasen

CREATE TABLE Person (
  Pnr     INTEGER NOT NULL,
  Navn    VARCHAR(20),
  CONSTRAINT Person_PK PRIMARY KEY (Pnr)
);

CREATE TABLE Hund (
  Regnr   INTEGER NOT NULL,
  Navn    VARCHAR(30),
  Faar    INTEGER,
  Rase    VARCHAR(30),
  EierPnr INTEGER NOT NULL,
  CONSTRAINT Hund_PK PRIMARY KEY (Regnr),
  CONSTRAINT Hund_FK FOREIGN KEY (EierPnr) REFERENCES Person(Pnr) ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT Alderssjekk CHECK (Faar > 1980)
);

CREATE TABLE BittAv (
  Pnr     INTEGER NOT NULL,
  Regnr   INTEGER NOT NULL,
  Antall  INTEGER DEFAULT 0,
  CONSTRAINT BittAv_PK PRIMARY KEY (Pnr, Regnr),
  CONSTRAINT BittAv_FK FOREIGN KEY (Pnr) REFERENCES Person(Pnr) ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT BittAv_FK2 FOREIGN KEY (Regnr) REFERENCES Hund(Regnr) ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT AntallSjekk CHECK (Antall >= 0)
);

Foreign Key restriksjoner

CONSTRAINT Hund_FK
    FOREIGN KEY (Eier_Pnr)
    REFERENCES Person(Pnr)
    ON UPDATE *
    ON DELETE *

DML - Data Manipulation Language

DML: Spørring

Ordning av resultat

Data fra flere tabeller

Klassisk SQL:

SELECT RegNr, Hund.navn, Person.Navn FROM Hund, Person WHERE Eier_Pnr = Pnr

Moderne SQL:

SELECT RegNr, Hund.navn, Person.Navn FROM Hund INNER JOIN Person ON Eier_Pnr = Pnr

Joined tables: Data fra flere tabeller