dbsys.info

SQL-skript for Hobbyhuset

Det kan være nødvendig å tilpasse SQL-skriptene til konkrete databasehåndteringssystemer.

Tabeller med eksempeldata

Kjør følgende SQL-skript for både å opprette tabeller (som vist under) og sette inn eksempeldata:

Tabeller + Eksempeldata

 

Kun tabellstruktur


--
-- 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)
);