· 6 years ago · Nov 21, 2019, 07:44 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);
22
23CREATE TABLE movie_table(
24 PRIMARY KEY (movieno),
25 movieno VARCHAR(8) NOT NULL,
26 title VARCHAR(50),
27 the_length INT,
28 category VARCHAR(20),
29 classification CHAR(3),
30 the_year INT,
31 studio VARCHAR(20),
32);
33
34CREATE TABLE cinema_table(
35 PRIMARY KEY (cinemano),
36 cinemano VARCHAR(8) NOT NULL,
37 numericseats INT,
38 screensize CHAR(1),
39);
40
41CREATE TABLE screening_table (
42 PRIMARY KEY (screeningno),
43 screeningno VARCHAR(8) NOT NULL,
44 cinemano VARCHAR(8),
45 movieno VARCHAR(8),
46 supervisorno VARCHAR(8),
47 cameraopno VARCHAR(8),
48 hourstart INT,
49 screeningdate DATE,
50 FOREIGN KEY (movieno) REFERENCES movie_table(movieno),
51 FOREIGN KEY (supervisorno) REFERENCES staff_table(staffno), -- Eget antagande att supervisorno är detsamma som staffno för att koppla ihop de två tabellerna!
52 FOREIGN KEY (cinemano) REFERENCES cinema_table(cinemano)
53);
54
55INSERT INTO staff_table
56 VALUES ('11','Snowden','Edward','M','1960-01-13','1981-09-09',NULL,'Slalomvägen 2','Saltsjöbaden','11337','08-7172500','0708600330','2888'),
57 ('22','Martensson','Helena','W','1994-04-17','2019-01-25','2019-01-30','Bjornkarrsgatan 7J','Fiskeskit','58242','013-152425','0708566321','3'),
58 ('10','Hofren','Johanna','W','1998-01-25','2010-04-07','2018-07-20','Nya Tanneforsvägen 15A','Linköping','56724','070-828282','0707931717','3000');
59
60INSERT INTO movie_table (movieno, category, title, the_length)
61 VALUES ('2','Action','Björnbröderna','2'),
62 ('3','Drama','Notting Hill','2'),
63 ('4','Romance','The Notebook','3'),
64 ('5','Comedy','American Pie','1');
65
66INSERT INTO cinema_table
67 VALUES ('1337','103','S');
68
69INSERT INTO screening_table
70 VALUES ('37','1337','2','11','5','19','2019-11-18');
71
72/*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! */
73ALTER TABLE staff_table
74 ALTER COLUMN surname VARCHAR(35) NOT NULL;
75
76ALTER TABLE staff_table
77 ALTER COLUMN surname VARCHAR(25) NOT NULL;
78
79/* 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).
80
81ALTER TABLE staff_table
82 ADD PRIMARY KEY (staffno);
83
84ALTER TABLE screening_table
85 ADD PRIMARY KEY (screeningno);
86
87ALTER TABLE cinema_table
88 ADD PRIMARY KEY (cinemano);
89
90ALTER TABLE movie_table
91 ADD PRIMARY KEY (movieno);
92 */
93
94-- Här lägger vi till en foreign key för att koppla samman två tabeller. (OM man ej gjort det i tabellerna ovan).
95/*
96ALTER TABLE screening_table
97 ADD FOREIGN KEY (movieno) REFERENCES movie_table(movieno);
98*/
99
100-- Här skriver vi ut allt som tabellerna innebär. Då när du testkör ser du varje kolumn.
101
102-- Här tar vi bort en perspn från staff_table
103DELETE FROM staff_table WHERE staffno
104
105SELECT *
106 FROM staff_table;
107
108SELECT *
109 FROM cinema_table;
110
111SELECT *
112 FROM movie_table;
113
114SELECT *
115 FROM screening_table;