diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/api-sql-intro.iml b/.idea/api-sql-intro.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/api-sql-intro.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..37813b7
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..3f39777
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sql/films/create-directors.sql b/sql/films/create-directors.sql
new file mode 100644
index 0000000..98032b0
--- /dev/null
+++ b/sql/films/create-directors.sql
@@ -0,0 +1,4 @@
+CREATE TABLE directors(
+id serial primary key,
+name varchar(255) NOT NULL,
+)
\ No newline at end of file
diff --git a/sql/films/create-films.sql b/sql/films/create-films.sql
new file mode 100644
index 0000000..7d58dd9
--- /dev/null
+++ b/sql/films/create-films.sql
@@ -0,0 +1,9 @@
+CREATE TABLE films(
+ id SERIAL PRIMARY KEY,
+ title VARCHAR(255) UNIQUE NOT NULL,
+ genre VARCHAR(50) NOT NULL,
+ release_year INT NOT NULL,
+ score INT NOT NULL,
+ directorId INT,
+ CONSTRAINT fk_director FOREIGN KEY (directorId) REFERENCES directors(id) ON DELETE SET NULL
+ );
\ No newline at end of file
diff --git a/sql/films/insert-films.sql b/sql/films/insert-films.sql
new file mode 100644
index 0000000..48e3678
--- /dev/null
+++ b/sql/films/insert-films.sql
@@ -0,0 +1,15 @@
+INSERT INTO films (title, genre, release_year, score) VALUES
+('The Shawshank Redemption', 'Drama', 1994, 9),
+('The Godfather', 'Crime', 1972, 9),
+('The Dark Knight', 'Action', 2008, 9),
+('Alien', 'SciFi', 1979, 9),
+('Total Recall', 'SciFi', 1990, 8),
+('The Matrix', 'SciFi', 1999, 8),
+('The Matrix Resurrections', 'SciFi', 2021, 5),
+('The Matrix Reloaded', 'SciFi', 2003, 6),
+('The Hunt for Red October', 'Thriller', 1990, 7),
+('Misery', 'Thriller', 1990, 7),
+('The Power Of The Dog', 'Western', 2021, 6),
+('Hell or High Water', 'Western', 2016, 8),
+('The Good the Bad and the Ugly', 'Western', 1966, 9),
+('Unforgiven', 'Western', 1992, 7);
\ No newline at end of file
diff --git a/sql/films/select-films-core.sql b/sql/films/select-films-core.sql
new file mode 100644
index 0000000..3b20fff
--- /dev/null
+++ b/sql/films/select-films-core.sql
@@ -0,0 +1,27 @@
+SELECT * FROM films;
+
+SELECT title, score FROM films ORDER BY score DESC;
+
+SELECT title, release_year FROM films ORDER BY release_year ASC;
+
+SELECT title, score FROM films WHERE score >= 8;
+
+SELECT title, score FROM films WHERE score <= 7;
+
+SELECT title, release_year FROM films WHERE release_year = 1990;
+
+SELECT title, release_year FROM films WHERE release_year <= 1999 ORDER BY release_year ASC;
+
+SELECT title, release_year FROM films WHERE release_year > 1999 ORDER BY release_year ASC;
+
+SELECT title, release_year FROM films WHERE release_year < 1999 AND release_year > 1990 ORDER BY release_year ASC;
+
+SELECT title, genre, release_year FROM films WHERE genre = 'SciFi' ORDER BY release_year DESC;
+
+SELECT title, genre, release_year FROM films WHERE genre = 'SciFi' OR genre = 'Western' ORDER BY release_year DESC;
+
+SELECT title, genre, release_year FROM films WHERE NOT genre = 'SciFi' ORDER BY release_year DESC;
+
+SELECT title, genre, release_year FROM films WHERE genre = 'Western' AND release_year < 2000 ORDER BY release_year DESC;
+
+SELECT title, release_year FROM films WHERE title LIKE '%Matrix%' ORDER BY release_year DESC;
diff --git a/sql/films/select-films-ext.sql b/sql/films/select-films-ext.sql
new file mode 100644
index 0000000..34560a3
--- /dev/null
+++ b/sql/films/select-films-ext.sql
@@ -0,0 +1,21 @@
+SELECT ROUND(AVG(score), 1) AS average_rating FROM films;
+
+SELECT COUNT(title) FROM films AS total_films;
+
+SELECT genre, ROUND(AVG(score), 1) AS average_rating FROM films GROUP BY genre ORDER BY ROUND(AVG(score), 1) DESC;
+
+
+
+SELECT films.title, directors.name AS director
+FROM films
+JOIN directors
+ON films.directorid = directors.id;
+
+
+
+SELECT directors.name, COUNT(films.directorId) AS movies
+FROM films
+JOIN directors
+ON films.directorId = directors.id
+GROUP BY directors.id;
+