-
Notifications
You must be signed in to change notification settings - Fork 1
/
Database.sql
73 lines (52 loc) · 1.45 KB
/
Database.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
-- Nullstiller database
DROP SCHEMA IF EXISTS oblig3 CASCADE;
CREATE SCHEMA oblig3;
SET search_path TO oblig3;
DROP TABLE IF EXISTS Ansatt;
DROP TABLE IF EXISTS Avdeling;
DROP TABLE IF EXISTS Prosjekt;
DROP TABLE IF EXISTS AnsattProsjekt;
-- Oppretter tabeller og relasjoner
CREATE TABLE Ansatt (
AnsId SERIAL,
Brukernavn VARCHAR(16),
Fornavn VARCHAR(32) NOT NULL,
Etternavn VARCHAR(32) NOT NULL,
Ansettelsesdato DATE,
Stilling VARCHAR(32),
Maanedslonn INTEGER,
UNIQUE (AnsId, Brukernavn),
CONSTRAINT AnsattPK PRIMARY KEY (AnsId)
);
CREATE TABLE Avdeling (
AvdId SERIAL,
Navn VARCHAR(32),
UNIQUE (AvdId),
CONSTRAINT Avdeling_PK PRIMARY KEY (AvdId)
);
CREATE TABLE Prosjekt (
PrId SERIAL,
Navn VARCHAR(32),
Beskrivelse VARCHAR(255),
Ansatte INTEGER,
UNIQUE (PrId),
CONSTRAINT Prosjekt_PK PRIMARY KEY (PrId)
);
CREATE TABLE AnsattProsjekt (
AnsId INTEGER REFERENCES Ansatt(AnsId),
PrId INTEGER REFERENCES Prosjekt(PrId),
Timer INTEGER,
Rolle VARCHAR(32),
CONSTRAINT AnsattProsjektPK PRIMARY KEY (AnsId, PrId)
);
-- Legger til fremmednøkler
ALTER TABLE Ansatt
ADD COLUMN AvdId INTEGER REFERENCES Avdeling (AvdId);
ALTER TABLE Avdeling
ADD COLUMN Sjef INTEGER REFERENCES Ansatt (AnsId);
-- Legger inn data
INSERT INTO
Ansatt (Brukernavn, Fornavn, Etternavn, Ansettelsesdato, Stilling, Maanedslonn)
VALUES
('sondregj', 'Sondre', 'Gjellestad', '2018-01-01', 'CEO', 250000),
('abc123', 'Ole', 'Nilsen', '2017-01-01', 'Vaskehjelp', 30000);