dbsys.info

SQL-skript for Hobbyhuset

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

Problemer med æ, ø og å? Flere av datafilene er lagt ut i flere versjoner. Les mer om hvilket format du bør velge til hva, for å unngå problemer blant annet med norske tegn.

Hvilket format bør jeg velge?

Tabeller med eksempeldata

SQL-skriptet Hobbyhuset oppretter tabeller (som vist under) og setter dessuten inn eksempeldata.

Hobbyhuset med eksempeldata (UTF-8 uten BOM) Hobbyhuset med eksempeldata (UTF-8 med BOM)

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;


-- Variant for MySQL og PostgreSQL.
-- 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)
);