diff --git a/amaksatov/postgresql/OS-329.sql b/amaksatov/postgresql/OS-329.sql new file mode 100644 index 0000000..a3d3ea3 --- /dev/null +++ b/amaksatov/postgresql/OS-329.sql @@ -0,0 +1,217 @@ +CREATE TABLE IF NOT EXISTS amaksatov.users ( + id SERIAL PRIMARY KEY, + name VARCHAR(100), + age INT, + email VARCHAR(255), + registration_date DATE +); + +CREATE TABLE IF NOT EXISTS amaksatov.courses ( + id SERIAL PRIMARY KEY, + title VARCHAR(255), + category VARCHAR(100), + created_at DATE +); + +CREATE TABLE IF NOT EXISTS amaksatov.lessons ( + id SERIAL PRIMARY KEY, + course_id INT, + title VARCHAR(255), + duration_min INT, + FOREIGN KEY (course_id) REFERENCES amaksatov.courses(id) +); + +CREATE TABLE IF NOT EXISTS amaksatov.enrollments ( + id SERIAL PRIMARY KEY, + user_id INT, + course_id INT, + enrolled_at date, + FOREIGN KEY (user_id) REFERENCES amaksatov.users(id), + FOREIGN KEY (course_id) REFERENCES amaksatov.courses(id) +); + +CREATE TABLE IF NOT EXISTS amaksatov.lesson_views ( + id SERIAL PRIMARY KEY, + user_id INT, + lesson_id INT, + viewed_at TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES amaksatov.users(id), + FOREIGN KEY (lesson_id) REFERENCES amaksatov.lessons(id) +); + + +INSERT + INTO + amaksatov.users ( + name, + age, + email, + registration_date + ) +VALUES ( + 'Alice', + 25, + 'alice@mail.com', + '2023-01-10' +), +( + 'Bob', + 30, + 'bob@gmail.com', + '2023-02-05' +), +( + 'Charlie', + 22, + 'charlie@mail.com', + '2023-02-20' +), +( + 'Diana', + 28, + 'diana@mail.com', + '2023-03-01' +), +( + 'Ethan', + 35, + 'ethan@gmail.com', + '2023-03-10' +); + +SELECT * FROM amaksatov.users; + + +INSERT + INTO + amaksatov.courses ( + title, + category, + created_at + ) +VALUES +( + 'SQL для начинающих', + 'data', + '2023-01-01' +), +( + 'Python для анализа данных', + 'programming', + '2023-01-15' +), +( + 'BI с нуля', + 'business', + '2023-03-01' +); + +INSERT + INTO + amaksatov.lessons ( + course_id, + title, + duration_min + ) +VALUES +( + 1, + 'SELECT и FROM', + 10 +), +( + 1, + 'JOIN', + 15 +), +( + 2, + 'Pandas', + 20 +), +( + 3, + 'Основы BI', + 12 +), +( + 3, + 'Метрики и дашборды', + 18 +); + +INSERT + INTO + amaksatov.enrollments ( + user_id, + course_id, + enrolled_at + ) +VALUES +( + 1, + 1, + '2023-01-15' +), +( + 1, + 2, + '2023-02-01' +), +( + 2, + 1, + '2023-01-20' +), +( + 3, + 2, + '2023-03-05' +), +( + 4, + 3, + '2023-04-01' +); + +INSERT + INTO + amaksatov.lesson_views ( + user_id, + lesson_id, + viewed_at + ) +VALUES +( + 1, + 1, + '2023-01-16 10:00:00' +), +( + 1, + 2, + '2023-01-16 10:15:00' +), +( + 2, + 1, + '2023-01-21 09:00:00' +), +( + 3, + 3, + '2023-03-06 12:00:00' +), +( + 4, + 4, + '2023-04-02 10:00:00' +), +( + 4, + 5, + '2023-04-03 10:00:00' +); + + +SELECT * FROM amaksatov.lessons \ No newline at end of file diff --git a/amaksatov/postgresql/script.sql b/amaksatov/postgresql/script.sql index e5fbf49..e69de29 100644 --- a/amaksatov/postgresql/script.sql +++ b/amaksatov/postgresql/script.sql @@ -1 +0,0 @@ -SELECT * FROM table3; \ No newline at end of file