diff --git a/mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql b/mnoskov/postgresql/SQL с нуля/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql rename to mnoskov/postgresql/SQL с нуля/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql diff --git a/mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql b/mnoskov/postgresql/SQL с нуля/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql rename to mnoskov/postgresql/SQL с нуля/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql diff --git a/mnoskov/postgresql/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql b/mnoskov/postgresql/SQL с нуля/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql rename to mnoskov/postgresql/SQL с нуля/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql diff --git a/mnoskov/postgresql/1. Основы/3. Фильтрация/DQL_filtration_practice.sql b/mnoskov/postgresql/SQL с нуля/1. Основы/3. Фильтрация/DQL_filtration_practice.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/3. Фильтрация/DQL_filtration_practice.sql rename to mnoskov/postgresql/SQL с нуля/1. Основы/3. Фильтрация/DQL_filtration_practice.sql diff --git a/mnoskov/postgresql/2. JOIN/DQL_join_practice.sql b/mnoskov/postgresql/SQL с нуля/2. JOIN/DQL_join_practice.sql similarity index 100% rename from mnoskov/postgresql/2. JOIN/DQL_join_practice.sql rename to mnoskov/postgresql/SQL с нуля/2. JOIN/DQL_join_practice.sql diff --git a/mnoskov/postgresql/3. UNION/DQL_union_practice.sql b/mnoskov/postgresql/SQL с нуля/3. UNION/DQL_union_practice.sql similarity index 100% rename from mnoskov/postgresql/3. UNION/DQL_union_practice.sql rename to mnoskov/postgresql/SQL с нуля/3. UNION/DQL_union_practice.sql diff --git a/mnoskov/postgresql/4. Агрегации и группировки/DQL_aggregations&groupings_practice.sql b/mnoskov/postgresql/SQL с нуля/4. Агрегации и группировки/DQL_aggregations&groupings_practice.sql similarity index 100% rename from mnoskov/postgresql/4. Агрегации и группировки/DQL_aggregations&groupings_practice.sql rename to mnoskov/postgresql/SQL с нуля/4. Агрегации и группировки/DQL_aggregations&groupings_practice.sql diff --git a/mnoskov/postgresql/5. Функции: даты, строки, логика/DQL_functions_practice.sql b/mnoskov/postgresql/SQL с нуля/5. Функции: даты, строки, логика/DQL_functions_practice.sql similarity index 100% rename from mnoskov/postgresql/5. Функции: даты, строки, логика/DQL_functions_practice.sql rename to mnoskov/postgresql/SQL с нуля/5. Функции: даты, строки, логика/DQL_functions_practice.sql diff --git a/mnoskov/postgresql/6. Подзапросы и CTE/DQL_cte_practice.sql b/mnoskov/postgresql/SQL с нуля/6. Подзапросы и CTE/DQL_cte_practice.sql similarity index 100% rename from mnoskov/postgresql/6. Подзапросы и CTE/DQL_cte_practice.sql rename to mnoskov/postgresql/SQL с нуля/6. Подзапросы и CTE/DQL_cte_practice.sql diff --git a/mnoskov/postgresql/7. Оконные функции/DQL_window_functions_practice.sql b/mnoskov/postgresql/SQL с нуля/7. Оконные функции/DQL_window_functions_practice.sql similarity index 100% rename from mnoskov/postgresql/7. Оконные функции/DQL_window_functions_practice.sql rename to mnoskov/postgresql/SQL с нуля/7. Оконные функции/DQL_window_functions_practice.sql diff --git a/mnoskov/postgresql/8. Представления и витрины данных/DQL_views_practice.sql b/mnoskov/postgresql/SQL с нуля/8. Представления и витрины данных/DQL_views_practice.sql similarity index 100% rename from mnoskov/postgresql/8. Представления и витрины данных/DQL_views_practice.sql rename to mnoskov/postgresql/SQL с нуля/8. Представления и витрины данных/DQL_views_practice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/2. Блокировки/DQL_blocking_prectice.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/2. Блокировки/DQL_blocking_prectice.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/2. Блокировки/DQL_blocking_prectice.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/2. Блокировки/DQL_blocking_prectice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/3. Оптимизатор запросов/DQL_optimizer_pracitce.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/3. Оптимизатор запросов/DQL_optimizer_pracitce.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/3. Оптимизатор запросов/DQL_optimizer_pracitce.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/3. Оптимизатор запросов/DQL_optimizer_pracitce.sql diff --git a/mnoskov/postgresql/9. Оптимизация/4. EXPLAIN и EXPLAIN ANALYZE/DQL_explain_analyze_practice.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/4. EXPLAIN и EXPLAIN ANALYZE/DQL_explain_analyze_practice.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/4. EXPLAIN и EXPLAIN ANALYZE/DQL_explain_analyze_practice.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/4. EXPLAIN и EXPLAIN ANALYZE/DQL_explain_analyze_practice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/5. Порядок выполнения команд/DQL_command_execution_order_practice.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/5. Порядок выполнения команд/DQL_command_execution_order_practice.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/5. Порядок выполнения команд/DQL_command_execution_order_practice.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/5. Порядок выполнения команд/DQL_command_execution_order_practice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/6. JOIN (физические)/DQL_physical_JOIN_practice.sql b/mnoskov/postgresql/SQL с нуля/9. Оптимизация/6. JOIN (физические)/DQL_physical_JOIN_practice.sql similarity index 100% rename from mnoskov/postgresql/9. Оптимизация/6. JOIN (физические)/DQL_physical_JOIN_practice.sql rename to mnoskov/postgresql/SQL с нуля/9. Оптимизация/6. JOIN (физические)/DQL_physical_JOIN_practice.sql diff --git a/mnoskov/postgresql/Пет-проект: Онлайн-курсы/1. Создание таблиц и связей/DDL_create_tables_for_pet_project.sql b/mnoskov/postgresql/Пет-проект: Онлайн-курсы/1. Создание таблиц и связей/DDL_create_tables_for_pet_project.sql new file mode 100644 index 0000000..68c5a40 --- /dev/null +++ b/mnoskov/postgresql/Пет-проект: Онлайн-курсы/1. Создание таблиц и связей/DDL_create_tables_for_pet_project.sql @@ -0,0 +1,45 @@ +--DROP TABLE IF EXISTS users; +CREATE TABLE users ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + name varchar(100) NOT NULL, + age SMALLINT, + email varchar(100), + registration_date timestamptz NOT NULL +); + +--DROP TABLE IF EXISTS courses; +CREATE TABLE courses ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + title varchar(150) NOT NULL, + category varchar(50), + created_at timestamptz NOT NULL +); + +--DROP TABLE IF EXISTS lessons; +CREATE TABLE lessons ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + course_id bigint NOT NULL, + title varchar(150) NOT NULL, + duration_min SMALLINT NOT NULL, + FOREIGN KEY (course_id) REFERENCES courses(id) +); + +--DROP TABLE IF EXISTS enrollments; +CREATE TABLE enrollments ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + user_id bigint NOT NULL, + course_id bigint NOT NULL, + enrolled_at timestamptz NOT NULL, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (course_id) REFERENCES courses(id) +); + +--DROP TABLE IF EXISTS lesson_views; +CREATE TABLE lesson_views ( + id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + user_id bigint NOT NULL, + lesson_id bigint NOT NULL, + viewed_at timestamptz NOT NULL, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (lesson_id) REFERENCES lessons(id) +); \ No newline at end of file