Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -360,4 +360,5 @@ MigrationBackup/
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd
FodyWeavers.xsd
.idea
2 changes: 2 additions & 0 deletions Core/Core-1.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT f.title, d.name FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id;
3 changes: 3 additions & 0 deletions Core/Core-2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT f.title, d.name AS director, s.name AS star FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN Stars s ON f.star_id_fk = s.id;
3 changes: 3 additions & 0 deletions Core/Core-3.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT f.title FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
WHERE d.country = 'USA';
4 changes: 4 additions & 0 deletions Core/Core-4.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT * FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN Writers w ON f.writer_id_fk = w.id
WHERE d.name = w.name;
3 changes: 3 additions & 0 deletions Core/Core-5.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT f.title AS film, d.name AS director FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
WHERE f.score >= 8;
96 changes: 96 additions & 0 deletions Core/Core-Setup-Tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@


CREATE TABLE Directors(
id serial PRIMARY KEY,
name VARCHAR (100) NOT NULL,
country VARCHAR (100) NOT NULL
);

CREATE TABLE Stars(
id serial PRIMARY KEY,
name VARCHAR (100) NOT NULL,
birthdate DATE NOT NULL
);

CREATE TABLE Writers(
id serial PRIMARY KEY,
name VARCHAR (100) NOT NULL,
email VARCHAR (100) NOT NULL
);

CREATE TABLE Films(
id serial PRIMARY KEY,
title VARCHAR (100) NOT NULL,
director_id_fk INT NOT NULL,
star_id_fk INT NOT NULL,
writer_id_fk INT NOT NULL,
releaseYear INT NOT NULL,
genre VARCHAR (100) NOT NULL,
score INTEGER NOT NULL,
FOREIGN KEY (director_id_fk) REFERENCES Directors(id),
FOREIGN KEY (star_id_fk) REFERENCES Stars(id),
FOREIGN KEY (writer_id_fk) REFERENCES Writers(id)
);

/* Directors */
INSERT INTO Directors
(name, country)
VALUES
('Stanley Kubrick', 'USA'),
('George Lucas', 'USA'),
('Robert Mulligan', 'USA'),
('James Cameron', 'Canada'),
('David Lean', 'UK'),
('Anthony Mann', 'USA'),
('Theodoros Angelopoulos', 'Greece'),
('Paul Verhoeven', 'Netherlands'),
('Krzysztof Kieslowski', 'Poland'),
('Jean-Paul Rappeneau', 'France');

/* Stars */
INSERT INTO Stars
(name, birthdate)
VALUES
('Keir Dullea', '1936-05-30'),
('Mark Hamill', '1951-09-25'),
('Gregory Peck', '1916-04-05'),
('Leonardo DiCaprio', '1974-11-11'),
('Julie Christie', '1940-04-14'),
('Charlton Heston', '1923-10-04'),
('Manos Katrakis', '1908-08-14'),
('Rutger Hauer', '1944-01-23'),
('Juliette Binoche', '1964-03-09'),
('Gerard Depardieu', '1948-12-27');

/* Writers */
INSERT INTO Writers
(name, email)
VALUES
('Arthur C Clarke', '[email protected]'),
('George Lucas', '[email protected]'),
('Harper Lee', '[email protected]'),
('James Cameron', '[email protected]'),
('Boris Pasternak', '[email protected]'),
('Frederick Frank', '[email protected]'),
('Theodoros Angelopoulos', '[email protected]'),
('Erik Hazelhoff Roelfzema', '[email protected]'),
('Krzysztof Kieslowski', '[email protected]'),
('Edmond Rostand', '[email protected]');

/* Films */
INSERT INTO Films
(title, director_id_fk, star_id_fk, writer_id_fk, releaseYear, genre, score)
VALUES
('2001: A Space Odyssey', 1, 1, 1, 1968, 'Science Fiction', 10),
('Star Wars: A New Hope', 2, 2, 2, 1977, 'Science Fiction', 7),
('To Kill A Mockingbird', 3, 3, 3, 1962,'Drama', 10),
('Titanic', 4, 4, 4, 1997,'Romance', 5),
('Dr Zhivago', 5, 5, 5, 1965,'Historical', 8),
('El Cid', 6, 6, 6, 1961,'Historical', 6),
('Voyage to Cythera', 7, 7, 7, 1984,'Drama', 8),
('Soldier of Orange', 8, 8, 8, 1977,'Thriller', 8),
('Three Colours: Blue', 9, 9, 9, 1993,'Drama', 8),
('Cyrano de Bergerac', 10, 10, 10, 1990,'Historical', 9);

/* 1 */
-- SELECT f.title, f.director_id_fk.name FROM Films f;
3 changes: 3 additions & 0 deletions Extension-Task1/Extension-Task1-1.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT f.title, p.name FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN People p ON d.person_id_fk = p.id;
5 changes: 5 additions & 0 deletions Extension-Task1/Extension-Task1-2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT f.title, dp.name, sp.name FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN People dp ON d.person_id_fk = dp.id
INNER JOIN Stars s ON f.star_id_fk = s.id
INNER JOIN People sp ON s.person_id_fk = sp.id;
3 changes: 3 additions & 0 deletions Extension-Task1/Extension-Task1-3.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SELECT f.title FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
WHERE d.country = 'USA';
4 changes: 4 additions & 0 deletions Extension-Task1/Extension-Task1-4.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT * FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN Writers w ON f.writer_id_fk = w.id
WHERE d.person_id_fk = w.person_id_fk;
4 changes: 4 additions & 0 deletions Extension-Task1/Extension-Task1-5.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT f.title AS film, p.name AS director FROM Films f
INNER JOIN Directors d ON f.director_id_fk = d.id
INNER JOIN People p ON d.person_id_fk = p.id
WHERE f.score >= 8;
132 changes: 132 additions & 0 deletions Extension-Task1/Extension-Task1-Setup-Tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@

CREATE TABLE People(
id serial PRIMARY KEY,
name VARCHAR(100) NOT NULL
);

CREATE TABLE Directors(
id serial PRIMARY KEY,
person_id_fk serial NOT NULL,
country VARCHAR (100) NOT NULL,
FOREIGN KEY (person_id_fk) REFERENCES People(id)
);

CREATE TABLE Stars(
id serial PRIMARY KEY,
person_id_fk serial NOT NULL,
birthdate DATE NOT NULL,
FOREIGN KEY (person_id_fk) REFERENCES People(id)
);

CREATE TABLE Writers(
id serial PRIMARY KEY,
person_id_fk serial NOT NULL,
email VARCHAR (100) NOT NULL,
FOREIGN KEY (person_id_fk) REFERENCES People(id)
);

CREATE TABLE Films(
id serial PRIMARY KEY,
title VARCHAR (100) NOT NULL,
director_id_fk serial NOT NULL,
star_id_fk serial NOT NULL,
writer_id_fk serial NOT NULL,
releaseYear INT NOT NULL,
genre VARCHAR (100) NOT NULL,
score INTEGER NOT NULL,
FOREIGN KEY (director_id_fk) REFERENCES Directors(id),
FOREIGN KEY (star_id_fk) REFERENCES Stars(id),
FOREIGN KEY (writer_id_fk) REFERENCES Writers(id)
);

/* People */
INSERT INTO People
(name)
VALUES
('Stanley Kubrick'),
('George Lucas'),
('Robert Mulligan'),
('James Cameron'),
('David Lean'),
('Anthony Mann'),
('Theodoros Angelopoulos'),
('Paul Verhoeven'),
('Krzysztof Kieslowski'),
('Jean-Paul Rappeneau'),
('Keir Dullea'),
('Mark Hamill'),
('Gregory Peck'),
('Leonardo DiCaprio'),
('Julie Christie'),
('Charlton Heston'),
('Manos Katrakis'),
('Rutger Hauer'),
('Juliette Binoche'),
('Gerard Depardieu'),
('Arthur C Clarke'),
('George Lucas'),
('Harper Lee'),
('Boris Pasternak'),
('Frederick Frank'),
('Erik Hazelhoff Roelfzema'),
('Edmond Rostand');

/* Directors */
INSERT INTO Directors
(person_id_fk, country)
VALUES
(1, 'USA'),
(2, 'USA'),
(3, 'USA'),
(4, 'Canada'),
(5, 'UK'),
(6, 'USA'),
(7, 'Greece'),
(8, 'Netherlands'),
(9, 'Poland'),
(10, 'France');

/* Stars */
INSERT INTO Stars
(person_id_fk, birthdate)
VALUES
(11, '1936-05-30'),
(12, '1951-09-25'),
(13, '1916-04-05'),
(14, '1974-11-11'),
(15, '1940-04-14'),
(16, '1923-10-04'),
(17, '1908-08-14'),
(18, '1944-01-23'),
(19, '1964-03-09'),
(20, '1948-12-27');

/* Writers */
INSERT INTO Writers
(person_id_fk, email)
VALUES
(21, '[email protected]'),
(22, '[email protected]'),
(23, '[email protected]'),
(4, '[email protected]'),
(24, '[email protected]'),
(25, '[email protected]'),
(7, '[email protected]'),
(26, '[email protected]'),
(9, '[email protected]'),
(27, '[email protected]');

/* Films */
INSERT INTO Films
(title, director_id_fk, star_id_fk, writer_id_fk, releaseYear, genre, score)
VALUES
('2001: A Space Odyssey', 1, 1, 1, 1968, 'Science Fiction', 10),
('Star Wars: A New Hope', 2, 2, 2, 1977, 'Science Fiction', 7),
('To Kill A Mockingbird', 3, 3, 3, 1962,'Drama', 10),
('Titanic', 4, 4, 4, 1997,'Romance', 5),
('Dr Zhivago', 5, 5, 5, 1965,'Historical', 8),
('El Cid', 6, 6, 6, 1961,'Historical', 6),
('Voyage to Cythera', 7, 7, 7, 1984,'Drama', 8),
('Soldier of Orange', 8, 8, 8, 1977,'Thriller', 8),
('Three Colours: Blue', 9, 9, 9, 1993,'Drama', 8),
('Cyrano de Bergerac', 10, 10, 10, 1990,'Historical', 9);
Loading