Det kan være nødvendig å tilpasse SQL-skriptene til konkrete databasehåndteringssystemer.
Kjør følgende SQL-skript for både å opprette tabeller (som vist under) og sette inn eksempeldata:
--
-- Sletter alle tabellene
--
-- For å få et skript som kan kjøres flere ganger:
-- DROP TABLE Ordrelinje;
-- DROP TABLE Ordre;
-- DROP TABLE Kunde;
-- DROP TABLE Ansatt;
-- DROP TABLE Prishistorikk;
-- DROP TABLE Vare;
-- DROP TABLE Kategori;
-- DROP TABLE Poststed;
-- MySQL
-- For å få et skript som kan kjøres flere ganger,
-- og som fungerer enten tabellen(e) finnes eller ikke:
-- DROP TABLE IF EXISTS Ordrelinje;
-- DROP TABLE IF EXISTS Ordre;
-- DROP TABLE IF EXISTS Kunde;
-- DROP TABLE IF EXISTS Ansatt;
-- DROP TABLE IF EXISTS Prishistorikk;
-- DROP TABLE IF EXISTS Vare;
-- DROP TABLE IF EXISTS Kategori;
-- DROP TABLE IF EXISTS Poststed;
-- ---------------------------------------------------------------------------
--
-- Oppretter alle tabellene
--
--
-- Tabellstruktur for tabell Poststed
--
CREATE TABLE Poststed
(
PostNr CHAR(4),
Poststed VARCHAR(50) NOT NULL,
CONSTRAINT PoststedPN PRIMARY KEY (PostNr)
);
--
-- Tabellstruktur for tabell Kategori
--
CREATE TABLE Kategori
(
KatNr SMALLINT,
Navn VARCHAR(50),
CONSTRAINT KategoriPN PRIMARY KEY (KatNr)
);
--
-- Tabellstruktur for tabell Vare
--
CREATE TABLE Vare
(
VNr CHAR(5),
Betegnelse VARCHAR(100) NOT NULL,
Pris DECIMAL(8,2) NOT NULL,
KatNr SMALLINT,
Antall INTEGER NOT NULL,
Hylle CHAR(3),
CONSTRAINT VarePN PRIMARY KEY (VNr),
CONSTRAINT VareKategoriFN FOREIGN KEY (KatNr) REFERENCES Kategori (KatNr)
);
--
-- Tabellstruktur for tabell Prishistorikk
--
CREATE TABLE Prishistorikk
(
VNr CHAR(5),
Dato DATE,
GammelPris DECIMAL(8,2) NOT NULL,
CONSTRAINT PrishistorikkPN PRIMARY KEY (VNr, Dato),
CONSTRAINT PrishistorikkVareFN FOREIGN KEY (VNr) REFERENCES Vare (VNr)
);
--
-- Tabellstruktur for tabell Ansatt
--
CREATE TABLE Ansatt
(
AnsNr SMALLINT,
Fornavn VARCHAR(50) NOT NULL,
Etternavn VARCHAR(50) NOT NULL,
Adresse VARCHAR(100),
PostNr CHAR(4) NOT NULL,
Fødselsdato DATE,
Kjønn CHAR(1),
Stilling VARCHAR(50),
Årslønn DECIMAL(8,2) NOT NULL,
CONSTRAINT AnsattPN PRIMARY KEY (AnsNr),
CONSTRAINT AnsattPoststedFN FOREIGN KEY (PostNr) REFERENCES Poststed (PostNr)
);
--
-- Tabellstruktur for tabell Kunde
--
CREATE TABLE Kunde
(
KNr INTEGER,
Fornavn VARCHAR(50) NOT NULL,
Etternavn VARCHAR(50) NOT NULL,
Adresse VARCHAR(100) NOT NULL,
PostNr CHAR(4) NOT NULL,
CONSTRAINT KundePN PRIMARY KEY (KNr),
CONSTRAINT KundePoststedFN FOREIGN KEY (PostNr) REFERENCES Poststed (PostNr)
);
--
-- Tabellstruktur for tabell Ordre
--
CREATE TABLE Ordre
(
OrdreNr INTEGER,
OrdreDato DATE NOT NULL,
SendtDato DATE,
BetaltDato DATE,
KNr INTEGER NOT NULL,
CONSTRAINT OrdrePN PRIMARY KEY (OrdreNr),
CONSTRAINT OrdreKundeFN FOREIGN KEY (KNr) REFERENCES Kunde (KNr)
);
--
-- Tabellstruktur for tabell Ordrelinje
--
CREATE TABLE Ordrelinje
(
OrdreNr INTEGER,
VNr CHAR(5),
PrisPrEnhet DECIMAL(8,2) NOT NULL,
Antall INTEGER NOT NULL,
CONSTRAINT OrdrelinjePN PRIMARY KEY (OrdreNr, VNr),
CONSTRAINT OrdrelinjeOrdreFN FOREIGN KEY (OrdreNr) REFERENCES Ordre (OrdreNr),
CONSTRAINT OrdrelinjeVareFN FOREIGN KEY (VNr) REFERENCES Vare (VNr)
);