· 6 years ago · Nov 21, 2019, 08:20 AM
1DROP TABLE IF EXISTS screening_table;
2DROP TABLE IF EXISTS cinema_table;
3DROP TABLE IF EXISTS movie_table;
4DROP TABLE IF EXISTS staff_table;
5
6CREATE TABLE staff_table(
7 PRIMARY KEY (staffno),
8 staffno VARCHAR(8) NOT NULL,
9 surname VARCHAR(25),
10 given VARCHAR(25),
11 sex VARCHAR(2),
12 dob DATE,
13 joined DATE,
14 resigned DATE,
15 the_address VARCHAR(50),
16 suburb VARCHAR(50),
17 postcode VARCHAR(6),
18 homephone VARCHAR(20),
19 workphone VARCHAR(20),
20 rateperhour INT,
21 CONSTRAINT sex_check -- Här döper vi vårat villkor
22 CHECK (sex = 'M' or sex= 'F'), --Här lägger vi till ett villkor att man måste skriva M eller F på kön
23 CONSTRAINT post_check -- Här döper vi vårat villkor
24 CHECK (postcode BETWEEN 2000 AND 9999), -- Här lägget vi till vilkoret
25 CONSTRAINT resigned_check
26 CHECK (resigned > joined),
27);
28
29CREATE TABLE movie_table(
30 PRIMARY KEY (movieno),
31 movieno VARCHAR(8) NOT NULL,
32 title VARCHAR(50),
33 the_length INT,
34 category VARCHAR(20),
35 classification CHAR(3),
36 the_year INT,
37 studio VARCHAR(20),
38);
39
40CREATE TABLE cinema_table(
41 PRIMARY KEY (cinemano),
42 cinemano VARCHAR(8) NOT NULL,
43 numericseats INT,
44 screensize CHAR(1),
45);
46
47CREATE TABLE screening_table (
48 PRIMARY KEY (screeningno),
49 screeningno VARCHAR(8) NOT NULL,
50 cinemano VARCHAR(8),
51 movieno VARCHAR(8),
52 supervisorno VARCHAR(8),
53 cameraopno VARCHAR(8),
54 hourstart INT,
55 screeningdate DATE,
56 FOREIGN KEY (movieno) REFERENCES movie_table(movieno),
57 FOREIGN KEY (supervisorno) REFERENCES staff_table(staffno), -- Eget antagande att supervisorno är detsamma som staffno för att koppla ihop de två tabellerna!
58 FOREIGN KEY (cinemano) REFERENCES cinema_table(cinemano)
59);
60
61INSERT INTO staff_table
62 VALUES ('11','Snowden','Edward','M','1960-01-13','1981-09-09',NULL,'Slalomvägen 2','Saltsjöbaden','2000','08-7172500','0708600330','2888'),
63 ('22','Martensson','Helena','F','1994-04-17','2019-01-25','2019-01-30','Bjornkarrsgatan 7J','Fiskeskit','3000','013-152425','0708566321','3'),
64 ('10','Hofren','Johanna','F','1998-01-25','2010-04-07','2018-07-20','Nya Tanneforsvägen 15A','Linköping','4000','070-828282','0707931717','3000');
65
66INSERT INTO movie_table (movieno, category, title, the_length)
67 VALUES ('2','Action','Björnbröderna','2'),
68 ('3','Drama','Notting Hill','2'),
69 ('4','Romance','The Notebook','3'),
70 ('5','Comedy','American Pie','1');
71
72INSERT INTO cinema_table
73 VALUES ('1337','103','S');
74
75INSERT INTO screening_table
76 VALUES ('37','1337','2','11','5','19','2019-11-18');
77
78/*Här höjer vi och sänker värdet på hur långt ett efternamn kan vara. För att testa skriver du ut efternamn med bokstäver större än värdet på siffran - detta ska ej fungera! */
79ALTER TABLE staff_table
80 ALTER COLUMN surname VARCHAR(35) NOT NULL;
81
82ALTER TABLE staff_table
83 ALTER COLUMN surname VARCHAR(25) NOT NULL;
84
85/* Här lägger vi till en primary key, för att testa skriver du ut två primary keys i varje tabell med samma värde - det ska ej fungera! (OM man ej gjort det i tabellerna ovan).
86
87ALTER TABLE staff_table
88 ADD PRIMARY KEY (staffno);
89
90ALTER TABLE screening_table
91 ADD PRIMARY KEY (screeningno);
92
93ALTER TABLE cinema_table
94 ADD PRIMARY KEY (cinemano);
95
96ALTER TABLE movie_table
97 ADD PRIMARY KEY (movieno);
98 */
99
100-- Här lägger vi till en foreign key för att koppla samman två tabeller. (OM man ej gjort det i tabellerna ovan).
101/*
102ALTER TABLE screening_table
103 ADD FOREIGN KEY (movieno) REFERENCES movie_table(movieno);
104*/
105
106-- Här tar vi bort en perspn från staff_table
107DELETE FROM staff_table WHERE dob='1998-01-25';
108
109-- Här skriver vi ut allt som tabellerna innebär. Då när du testkör ser du varje kolumn
110SELECT *
111 FROM staff_table;
112
113SELECT *
114 FROM cinema_table;
115
116SELECT *
117 FROM movie_table;
118
119SELECT *
120 FROM screening_table;