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
4 changes: 4 additions & 0 deletions query1.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- Show the title and director name for all films
SELECT f.title, p.name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people p ON p.id = d.person_fk
2 changes: 2 additions & 0 deletions query10.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT p.name FROM people p
WHERE dob = '1974-11-11'
10 changes: 10 additions & 0 deletions query2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- Show the title, director and star name for all films
SELECT f.title, dir.name AS director_name, wri.name AS writer_name, sta.name AS star_name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people dir ON dir.id = d.person_fk

LEFT JOIN writers w ON w.film_fk = f.id
LEFT JOIN people wri ON wri.id = w.person_fk

LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk
6 changes: 6 additions & 0 deletions query3.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-- Show the title of films where the director is from the USA
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people p ON p.id = d.person_fk
LEFT JOIN countries c ON c.id = p.country_fk
WHERE c.countryname = 'USA'
5 changes: 5 additions & 0 deletions query4.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Show only those films where the writer and the director are the same person
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN writers w ON w.film_fk = f.id
WHERE w.person_fk = d.person_fk;
5 changes: 5 additions & 0 deletions query5.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- Show directors and film titles for films with a score of 8 or higher
SELECT f.title, dir.name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people dir ON dir.id = d.person_fk
WHERE f.score > 7;
4 changes: 4 additions & 0 deletions query6.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN writers w ON w.film_fk = f.id
WHERE NOT w.person_fk = d.person_fk;
2 changes: 2 additions & 0 deletions query7.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SELECT f.title FROM films f
WHERE f.score > 8 AND f.year > 1985
4 changes: 4 additions & 0 deletions query8.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT f.title FROM films f
LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk
WHERE sta.dob = '1974-11-11'
4 changes: 4 additions & 0 deletions query9.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
SELECT sta.name FROM films f
LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk
WHERE f.YEAR < 1980;
75 changes: 75 additions & 0 deletions sql_queries v2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@

# Show the title and director name for all films
SELECT f.title, p.name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people p ON p.id = d.person_fk


# Show the title, director and star name for all films
SELECT f.title, dir.name AS director_name, wri.name AS writer_name, sta.name AS star_name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people dir ON dir.id = d.person_fk

LEFT JOIN writers w ON w.film_fk = f.id
LEFT JOIN people wri ON wri.id = w.person_fk

LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk


# Show the title of films where the director is from the USA
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people p ON p.id = d.person_fk
LEFT JOIN countries c ON c.id = p.country_fk
WHERE c.countryname = 'USA'


# Show only those films where the writer and the director are the same person
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN writers w ON w.film_fk = f.id
WHERE w.person_fk = d.person_fk;


# Show directors and film titles for films with a score of 8 or higher
SELECT f.title, dir.name FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN people dir ON dir.id = d.person_fk
WHERE f.score > 7;


# Make at least 5 more queries to demonstrate your understanding of joins, and other relationships between tables.

#6
SELECT f.title FROM films f
LEFT JOIN directors d ON d.film_fk = f.id
LEFT JOIN writers w ON w.film_fk = f.id
WHERE NOT w.person_fk = d.person_fk;

#7
SELECT f.title FROM films f
WHERE f.score > 8 AND f.year > 1985

#8
SELECT f.title FROM films f
LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk
WHERE sta.dob = '1974-11-11'

#9
SELECT sta.name FROM films f
LEFT JOIN filmcast fc ON fc.film_fk = f.id
LEFT JOIN people sta ON sta.id = fc.person_fk
WHERE f.YEAR < 1980;

#10
SELECT p.name FROM people p
WHERE dob = '1974-11-11'






todo cast
148 changes: 148 additions & 0 deletions sql_tables v2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
-- tables

CREATE TABLE People(
id serial PRIMARY KEY,
name VARCHAR (100) NOT NULL,
email VARCHAR (100),
country_fk INTEGER,
dob DATE
);



CREATE TABLE Countries(
id serial PRIMARY KEY,
countryname VARCHAR (50) NOT NULL
);


CREATE TABLE Films(
id serial PRIMARY KEY,
title VARCHAR (200),
year INTEGER NOT NULL,
genre VARCHAR (50),
score INTEGER
);

CREATE TABLE Directors(
id serial PRIMARY KEY,
film_fk INTEGER NOT NULL,
person_fk INTEGER NOT NULL

);

CREATE TABLE Writers(
id serial PRIMARY KEY,
film_fk INTEGER NOT NULL,
person_fk INTEGER NOT NULL
);

CREATE TABLE FilmCast(
id serial PRIMARY KEY,
film_fk INTEGER NOT NULL,
person_fk INTEGER NOT NULL
);


-- populate

INSERT into countries (countryname) VALUES ('USA');
INSERT into countries (countryname) VALUES ('UK');
INSERT into countries (countryname) VALUES ('Canada');
INSERT into countries (countryname) VALUES ('Greece');
INSERT into countries (countryname) VALUES ('Netherlands');
INSERT into countries (countryname) VALUES ('Poland');
INSERT into countries (countryname) VALUES ('France');


INSERT INTO people (name, email, country_fk, dob) VALUES ('Stanley Kubrick', NULL, 1, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('George Lucas', '[email protected]', 1, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Robert Mulligan', NULL, 1, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('James Cameron', '[email protected]', 3, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('David Lean', NULL, 2, NULL);

INSERT INTO people (name, email, country_fk, dob) VALUES ('Anthony Mann', NULL, 1, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Theodoros Angelopoulos', '[email protected]', 4, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Paul Verhoeven', NULL, 5, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Krzysztof Kieslowski', '[email protected]', 6, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Jean-Paul Rappeneau', NULL, 7, NULL);


INSERT INTO people (name, email, country_fk, dob) VALUES ('Keir Dullea', NULL, NULL, '1936-05-30');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Mark Hamill', NULL, NULL, '1951-09-25');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Gregory Peck', NULL, NULL, '1916-04-05');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Leonardo DiCaprio', NULL, NULL, '1974-11-11');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Julie Christie', NULL, NULL, '1940-04-14');

INSERT INTO people (name, email, country_fk, dob) VALUES ('Charlton Heston', NULL, NULL, '1923-10-04');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Manos Katrakis', NULL, NULL, '1908-08-14');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Rutger Hauer', NULL, NULL, '1944-01-23');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Juliette Binoche', NULL, NULL, '1964-03-09');
INSERT INTO people (name, email, country_fk, dob) VALUES ('Gerard Depardieu', NULL, NULL, '1948-12-27');


INSERT INTO people (name, email, country_fk, dob) VALUES ('Arthur C Clarke', '[email protected]', NULL, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Harper Lee', '[email protected]', NULL, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Boris Pasternak', '[email protected]', NULL, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Frederick Frank', '[email protected]', NULL, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Erik Hazelhoff Roelfzema', '[email protected]', NULL, NULL);
INSERT INTO people (name, email, country_fk, dob) VALUES ('Edmon Rostand', '[email protected]', NULL, NULL);


INSERT INTO films (title, year, genre, score) VALUES ('2001: A Space Odyssey', 1968, 'Science Fiction', 10);
INSERT INTO films (title, year, genre, score) VALUES ('Star Wars: A New Hope', 1977, 'Science Fiction', 7);
INSERT INTO films (title, year, genre, score) VALUES ('To Kill A Mockingbird', 1962, 'Drama', 10);
INSERT INTO films (title, year, genre, score) VALUES ('Titanic', 1997, 'Romance', 5);
INSERT INTO films (title, year, genre, score) VALUES ('Dr Zhivago', 1965, 'Historical', 8);

INSERT INTO films (title, year, genre, score) VALUES ('El Cid', 1961, 'Historical', 6);
INSERT INTO films (title, year, genre, score) VALUES ('Voyage to Cythera', 1984, 'Drama', 8);
INSERT INTO films (title, year, genre, score) VALUES ('Soldier of Orange', 1977, 'Thriller', 8);
INSERT INTO films (title, year, genre, score) VALUES ('Three Colours: Blue', 1993, 'Drama', 8);
INSERT INTO films (title, year, genre, score) VALUES ('Cyrano de Bergerac', 1990, 'Historical', 9);

-- director table
INSERT INTO directors (film_fk, person_fk) VALUES (1, 1);
INSERT INTO directors (film_fk, person_fk) VALUES (2, 2);
INSERT INTO directors (film_fk, person_fk) VALUES (3, 3);
INSERT INTO directors (film_fk, person_fk) VALUES (4, 4);
INSERT INTO directors (film_fk, person_fk) VALUES (5, 5);

INSERT INTO directors (film_fk, person_fk) VALUES (6, 6);
INSERT INTO directors (film_fk, person_fk) VALUES (7, 7);
INSERT INTO directors (film_fk, person_fk) VALUES (8, 8);
INSERT INTO directors (film_fk, person_fk) VALUES (9, 9);
INSERT INTO directors (film_fk, person_fk) VALUES (10, 10);

-- writers table
INSERT INTO writers (film_fk, person_fk) VALUES (1, 11);
INSERT INTO writers (film_fk, person_fk) VALUES (2, 2);
INSERT INTO writers (film_fk, person_fk) VALUES (3, 22);
INSERT INTO writers (film_fk, person_fk) VALUES (4, 4);
INSERT INTO writers (film_fk, person_fk) VALUES (5, 23);
INSERT INTO writers (film_fk, person_fk) VALUES (6, 24);
INSERT INTO writers (film_fk, person_fk) VALUES (7, 7);
INSERT INTO writers (film_fk, person_fk) VALUES (8, 25);
INSERT INTO writers (film_fk, person_fk) VALUES (9, 9);
INSERT INTO writers (film_fk, person_fk) VALUES (10, 26);

-- cast film
INSERT INTO filmcast (film_fk, person_fk) VALUES (1, 11);
INSERT INTO filmcast (film_fk, person_fk) VALUES (2, 12);
INSERT INTO filmcast (film_fk, person_fk) VALUES (3, 13);
INSERT INTO filmcast (film_fk, person_fk) VALUES (4, 14);
INSERT INTO filmcast (film_fk, person_fk) VALUES (5, 15);

INSERT INTO filmcast (film_fk, person_fk) VALUES (6, 16);
INSERT INTO filmcast (film_fk, person_fk) VALUES (7, 17);
INSERT INTO filmcast (film_fk, person_fk) VALUES (8, 18);
INSERT INTO filmcast (film_fk, person_fk) VALUES (9, 19);
INSERT INTO filmcast (film_fk, person_fk) VALUES (10, 20);








Loading