From ebbfcdba725d6c65bff92f98dc2a47943361ab9a Mon Sep 17 00:00:00 2001 From: sa Date: Fri, 30 Dec 2022 02:18:13 -0500 Subject: [PATCH] uploaded sql project files --- insertStatements.sql | 49 +++++++++++++++++++++++++++ relationalModel3NF.png | Bin 0 -> 47153 bytes selectStatements.sql | 72 ++++++++++++++++++++++++++++++++++++++++ sqlCreateStatements.sql | 66 ++++++++++++++++++++++++++++++++++++ 4 files changed, 187 insertions(+) create mode 100644 insertStatements.sql create mode 100644 relationalModel3NF.png create mode 100644 selectStatements.sql create mode 100644 sqlCreateStatements.sql diff --git a/insertStatements.sql b/insertStatements.sql new file mode 100644 index 0000000..7801834 --- /dev/null +++ b/insertStatements.sql @@ -0,0 +1,49 @@ +INSERT INTO Genre VALUES +('action', 1, 0, 0, 0, 0, 0, 0, 0), +('horror', 0, 1, 0, 0, 0, 0, 0, 0), +('comedy', 0, 0, 1, 0, 0, 0, 0, 0), +('suspense', 0, 0, 0, 1, 0, 0, 0, 0), +('adventure', 0, 0, 0, 0, 1, 0, 0, 0); + +INSERT INTO Films VALUES +('AAAAAAAA', 'The Great Gatsby', 'Guy is rich but unhappy', '2:23', 7, 'Comedy'), +('AAAAAAAB', 'American Psycho', 'Guy is rich but unhappy', '2:10', 8, 'Suspense'), +('AAAAAAAC', 'Batman', 'Guy is rich and fights crime while being unhappy', '2:10', 9, 'Action'), +('AAAAAAAD', 'The Mist', 'Spooky things occur after the mist rolls in', '2:02', 6, 'Horror'), +('AAAAAAAE', 'Shrek', 'An ogre goes on a quest', '1:33', 10, "Adventure"); + +INSERT INTO Actors VALUES +('AAAAAAAA', 'Leonardo DiCaprio', 'M', '38', 'Big moviestar, been in many films'), +('AAAAAAAB', 'Christian Bale', 'M', '46', 'Big moviestar, been in many films'), +('AAAAAAAC', 'Adam West', 'M', '75', 'Big moviestar, been in many films'), +('AAAAAAAD', 'Thomas Jane', 'M', '55', 'Big moviestar, been in many films'), +('AAAAAAAE', 'Mike Myers', 'M', '65', 'Big moviestar, been in many films'); + +INSERT INTO Directors VALUES +('AAAAAAAA', 'Andrew Adamson', 'M', '38', 'Big hollywood director, directed many films'), +('AAAAAAAB', 'Vicky Jenson', 'F', '35', 'Big hollywood director, directed many films'), +('AAAAAAAC', 'Baz Luhrmann', 'M', '30', 'Big hollywood director, directed many films'), +('AAAAAAAD', 'Mary Harron', 'F', '51', 'Big hollywood director, directed many films'), +('AAAAAAAE', 'Frank Darabont', 'M', '48', 'Big hollywood director, directed many films'); + +INSERT INTO Actor_has_films VALUES +('AAAAAAAA', 'AAAAAAAA'), +('AAAAAAAB', 'AAAAAAAB'), +('AAAAAAAC', 'AAAAAAAC'), +('AAAAAAAD', 'AAAAAAAD'), +('AAAAAAAE', 'AAAAAAAE'); + +INSERT INTO Genre_has_films VALUES +('Action', 'AAAAAAAC'), +('Comedy', 'AAAAAAAA'), +('Horror', 'AAAAAAAD'), +('Suspense', 'AAAAAAAB'), +('Adventure', 'AAAAAAAE'); + +INSERT INTO Directs VALUES +('AAAAAAAA', 'AAAAAAAA'), +('AAAAAAAB', 'AAAAAAAB'), +('AAAAAAAC', 'AAAAAAAC'), +('AAAAAAAD', 'AAAAAAAD'), +('AAAAAAAE', 'AAAAAAAE'); + diff --git a/relationalModel3NF.png b/relationalModel3NF.png new file mode 100644 index 0000000000000000000000000000000000000000..885102479fecbe05cdfb0ec220eeff5d8410b59d GIT binary patch literal 47153 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 literal 0 HcmV?d00001 diff --git a/selectStatements.sql b/selectStatements.sql new file mode 100644 index 0000000..cad4fdd --- /dev/null +++ b/selectStatements.sql @@ -0,0 +1,72 @@ +SELECT genre, films_id FROM Genre_has_films; +SELECT name FROM Directors; +SELECT title FROM Films; + +SELECT genre FROM Genre WHERE action = 1; +SELECT actor_id FROM Actor_has_films WHERE films_id = 'AAAAAAAA'; +SELECT title FROM Films WHERE films_id = 'AAAAAAAA'; + +SELECT name FROM Actors +WHERE age > 50 +ORDER BY age; + +SELECT director_id, age FROM Directors +WHERE gender = 'F' +ORDER BY age; + +SELECT COUNT(actor_id) FROM Actors; +SELECT MAX(age) FROM Directors; + +SELECT name, gender, MIN(age) FROM Actors +WHERE gender = 'F'; + +SELECT director_id, COUNT(*) FROM Directors +WHERE gender = 'M'; + +SELECT title, COUNT(*) FROM Films +GROUP BY title; + +SELECT gender, AVG(age) FROM Directors +GROUP BY gender; + +SELECT duration, COUNT(*) FROM Films +GROUP BY reviews +HAVING reviews > 8; + +SELECT name, age, gender FROM Directors +GROUP BY gender +HAVING age > AVG(age); + +SELECT * FROM Actor_has_films INNER JOIN Actors ON Actor_has_films.actor_id = Actors.actor_id; + +SELECT Directors.name, Directs.films_id FROM Directors, Directs +WHERE Directors.director_id = Directs.director_id; + +SELECT * FROM Actor_has_films +LEFT OUTER JOIN Films +ON Actor_has_films.films_id = Films.films_id +LEFT OUTER JOIN Actors +ON Actor_has_films.actor_id = Actors.actor_id; + +SELECT * FROM Directs +CROSS JOIN Actor_has_films +CROSS JOIN Genre_has_films; + +SELECT * FROM Actor_has_films +LEFT OUTER JOIN Films +ON Actor_has_films.films_id = Films.films_id +LEFT OUTER JOIN Actors +ON Actor_has_films.actor_id = Actors.actor_id +LEFT OUTER JOIN Directs +ON Films.films_id = Directs.films_id; + +SELECT * FROM Films +CROSS JOIN Actor_has_films +CROSS JOIN Directs +CROSS JOIN Actors; + + + + + + diff --git a/sqlCreateStatements.sql b/sqlCreateStatements.sql new file mode 100644 index 0000000..842878b --- /dev/null +++ b/sqlCreateStatements.sql @@ -0,0 +1,66 @@ +CREATE TABLE Genre ( + genre varchar(25) NOT NULL, + action bool, + horror bool, + comedy bool, + suspense bool, + adventure bool, + crime bool, + fiction bool, + animated bool, + PRIMARY KEY (genre) +); + +CREATE TABLE Films ( + films_id char(8) NOT NULL, + title varchar(25), + description varchar(255), + duration varchar(4), + reviews int, + genre varchar(25) NOT NULL, + PRIMARY KEY (films_id), + FOREIGN KEY (genre) REFERENCES Genre(genre) +); + +CREATE TABLE Actors ( + actor_id char(8) NOT NULL, + name varchar(20), + gender CHAR, + age int, + bio varchar(255), + PRIMARY KEY (actor_id) +); + +CREATE TABLE Directors ( + director_id char(8) NOT NULL, + name varchar(20), + gender CHAR, + age int, + bio varchar(255), + PRIMARY KEY (director_id) +); + +CREATE TABLE Actor_has_films ( + actor_id char(8) NOT NULL, + films_id char(8) NOT NULL, + PRIMARY KEY (actor_id, films_id), + FOREIGN KEY (actor_id) REFERENCES Actors(actor_id), + FOREIGN KEY (films_id) REFERENCES Films(films_id) +); + +CREATE TABLE Genre_has_films ( + genre varchar(25) NOT NULL, + films_id char(8) NOT NULL, + PRIMARY KEY (genre, films_id), + FOREIGN KEY (genre) REFERENCES Genre(genre), + FOREIGN KEY (films_id) REFERENCES Films(films_id) +); + +CREATE TABLE Directs ( + films_id char(8) NOT NULL, + director_id char(8) NOT NULL, + PRIMARY KEY (films_id, director_id), + FOREIGN KEY (films_id) REFERENCES Films(films_id), + FOREIGN KEY (director_id) REFERENCES Director(director_id) +); +