CineSync/Документы/Заполнение Кинотеатр.sql

356 lines
18 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

INSERT INTO films_genres (name) VALUES
('Боевик'),
('Комедия'),
('Драма'),
('Фантастика'),
('Ужасы'),
('Триллер'),
('Мелодрама'),
('Приключения'),
('Фэнтези'),
('Мистика'),
('Детектив'),
('Анимация'),
('Документальный'),
('Исторический'),
('Вестерн');
INSERT INTO films_films (name, duration, release_date) VALUES
('Звёздные войны: Эпизод IV Новая надежда', 121, '1977-05-25'),
('Властелин колец: Братство Кольца', 178, '2001-12-19'),
('Зеленая миля', 189, '1999-12-10'),
('Форрест Гамп', 142, '1994-06-23'),
('Побег из Шоушенка', 142, '1994-09-10'),
('Начало', 148, '2010-07-16'),
('Матрица', 136, '1999-03-31'),
('Властелин колец: Возвращение Короля', 201, '2003-12-17'),
('Интерстеллар', 169, '2014-11-06'),
('1+1', 112, '2011-11-02'),
('Криминальное чтиво', 154, '1994-09-10'),
('Король Лев', 88, '1994-06-15'),
('Бойцовский клуб', 139, '1999-10-15'),
('Темный рыцарь', 152, '2008-07-18'),
('Гладиатор', 155, '2000-05-01'),
('Пираты Карибского моря: Проклятие Черной жемчужины', 143, '2003-07-09'),
('Хороший, плохой, злой', 161, '1966-12-23'),
('Леон', 110, '1994-09-14'),
('Терминатор 2: Судный день', 137, '1991-07-03'),
('ВАЛЛ·И', 98, '2008-06-27'),
('Джанго освобожденный', 165, '2012-12-25'),
('Исчезнувшая', 145, '2014-10-02'),
('Храброе сердце', 177, '1995-09-08'),
('Гарри Поттер и Философский камень', 152, '2001-11-16'),
('Индиана Джонс: В поисках утраченного ковчега', 115, '1981-06-12'),
('Красота по-американски', 122, '1999-09-08'),
('Трасса 60', 92, '2001-02-09'),
('Храбрая сердцем', 93, '2012-06-22'),
('Кунг-фу Панда', 92, '2008-06-05'),
('Рататуй', 111, '2007-06-28'),
('Голодные игры', 142, '2012-03-12'),
('Мадагаскар', 86, '2005-05-25'),
('Человек-паук', 121, '2002-05-03'),
('Кунг-фу Панда 2', 91, '2011-05-26'),
('Мечтатели', 127, '2003-11-19'),
('Гарри Поттер и узник Азкабана', 142, '2004-05-31'),
('Люди Икс', 104, '2000-07-13'),
('Хранители', 162, '2009-03-06'),
('Трансформеры', 144, '2007-06-27'),
('Темный рыцарь: Возрождение легенды', 164, '2012-07-16');
INSERT INTO films_films_genres (film_id, genre_id) VALUES
(1, 4), -- Звёздные войны: Эпизод IV Новая надежда - Фантастика
(1, 7), -- Звёздные войны: Эпизод IV Новая надежда - Приключения
(2, 4), -- Властелин колец: Братство Кольца - Фантастика
(2, 7), -- Властелин колец: Братство Кольца - Приключения
(3, 3), -- Зеленая миля - Драма
(4, 3), -- Форрест Гамп - Драма
(5, 3), -- Побег из Шоушенка - Драма
(6, 4), -- Начало - Фантастика
(6, 5), -- Начало - Триллер
(7, 4), -- Матрица - Фантастика
(8, 4), -- Властелин колец: Возвращение Короля - Фантастика
(8, 7), -- Властелин колец: Возвращение Короля - Приключения
(9, 4), -- Интерстеллар - Фантастика
(9, 3), -- Интерстеллар - Драма
(10, 3), -- 1+1 - Драма
(10, 8), -- 1+1 - Мелодрама
(11, 5), -- Криминальное чтиво - Ужасы
(12, 7), -- Король Лев - Приключения
(13, 6), -- Бойцовский клуб - Триллер
(13, 5), -- Бойцовский клуб - Ужасы
(14, 6), -- Темный рыцарь - Триллер
(14, 5), -- Темный рыцарь - Ужасы
(15, 6), -- Гладиатор - Триллер
(16, 7), -- Пираты Карибского моря: Проклятие Черной жемчужины - Приключения
(17, 8), -- Хороший, плохой, злой - Мелодрама
(17, 2), -- Хороший, плохой, злой - Комедия
(18, 9), -- Леон - Фэнтези
(18, 6), -- Леон - Триллер
(19, 9), -- Терминатор 2: Судный день - Фэнтези
(19, 4), -- Терминатор 2: Судный день - Фантастика
(20, 1), -- ВАЛЛ·И - Боевик
(20, 4), -- ВАЛЛ·И - Фантастика
(21, 6), -- Джанго освобожденный - Триллер
(22, 6), -- Исчезнувшая - Триллер
(23, 6), -- Храброе сердце - Триллер
(24, 7), -- Гарри Поттер и Философский камень - Приключения
(24, 9), -- Гарри Поттер и Философский камень - Фэнтези
(25, 6), -- Индиана Джонс: В поисках утраченного ковчега - Триллер
(25, 7), -- Индиана Джонс: В поисках утраченного ковчега - Приключения
(26, 8), -- Красота по-американски - Мелодрама
(26, 2), -- Красота по-американски - Комедия
(27, 1), -- Трасса 60 - Боевик
(28, 9), -- Храбрая сердцем - Фэнтези
(28, 6), -- Храбрая сердцем - Триллер
(29, 10), -- Кунг-фу Панда - Мистика
(29, 11), -- Кунг-фу Панда - Детектив
(30, 10), -- Рататуй - Мистика
(30, 11), -- Рататуй - Детектив
(31, 11), -- Голодные игры - Детектив
(31, 6), -- Голодные игры - Триллер
(32, 10), -- Мадагаскар - Мистика
(32, 11), -- Мадагаскар - Детектив
(33, 12), -- Человек-паук - Анимация
(33, 1), -- Человек-паук - Боевик
(34, 10), -- Кунг-фу Панда 2 - Мистика
(34, 11), -- Кунг-фу Панда 2 - Детектив
(35, 3), -- Мечтатели - Драма
(36, 4), -- Гарри Поттер и узник Азкабана - Фантастика
(36, 7), -- Гарри Поттер и узник Азкабана - Приключения
(37, 1), -- Люди Икс - Боевик
(37, 4), -- Люди Икс - Фантастика
(38, 7), -- Хранители - Приключения
(38, 4), -- Хранители - Фантастика
(39, 1), -- Трансформеры - Боевик
(39, 4), -- Трансформеры - Фантастика
(40, 6), -- Темный рыцарь: Возрождение легенды - Триллер
(40, 7); -- Темный рыцарь: Возрождение легенды - Приключения
UPDATE films_films
SET description =
CASE
WHEN name = 'Звёздные войны: Эпизод IV Новая надежда' THEN 'Описание Звёздные войны: Эпизод IV Новая надежда'
WHEN name = 'Властелин колец: Братство Кольца' THEN 'Описание Властелин колец: Братство Кольца'
WHEN name = 'Зеленая миля' THEN 'Описание Зеленая миля'
WHEN name = 'Форрест Гамп' THEN 'Описание Форрест Гамп'
WHEN name = 'Побег из Шоушенка' THEN 'Описание Побег из Шоушенка'
WHEN name = 'Начало' THEN 'Описание Начало'
WHEN name = 'Матрица' THEN 'Описание Матрица'
WHEN name = 'Властелин колец: Возвращение Короля' THEN 'Описание Властелин колец: Возвращение Короля'
WHEN name = 'Интерстеллар' THEN 'Описание Интерстеллар'
WHEN name = '1+1' THEN 'Описание 1+1'
WHEN name = 'Криминальное чтиво' THEN 'Описание Криминальное чтиво'
WHEN name = 'Король Лев' THEN 'Описание Король Лев'
WHEN name = 'Бойцовский клуб' THEN 'Описание Бойцовский клуб'
WHEN name = 'Темный рыцарь' THEN 'Описание Темный рыцарь'
WHEN name = 'Гладиатор' THEN 'Описание Гладиатор'
WHEN name = 'Пираты Карибского моря: Проклятие Черной жемчужины' THEN 'Описание Пираты Карибского моря: Проклятие Черной жемчужины'
WHEN name = 'Хороший, плохой, злой' THEN 'Описание Хороший, плохой, злой'
WHEN name = 'Леон' THEN 'Описание Леон'
WHEN name = 'Терминатор 2: Судный день' THEN 'Описание Терминатор 2: Судный день'
WHEN name = 'ВАЛЛ·И' THEN 'Описание ВАЛЛ·И'
WHEN name = 'Джанго освобожденный' THEN 'Описание Джанго освобожденный'
WHEN name = 'Исчезнувшая' THEN 'Описание Исчезнувшая'
WHEN name = 'Храброе сердце' THEN 'Описание Храброе сердце'
WHEN name = 'Гарри Поттер и Философский камень' THEN 'Описание Гарри Поттер и Философский камень'
WHEN name = 'Индиана Джонс: В поисках утраченного ковчега' THEN 'Описание Индиана Джонс: В поисках утраченного ковчега'
WHEN name = 'Красота по-американски' THEN 'Описание Красота по-американски'
WHEN name = 'Трасса 60' THEN 'Описание Трасса 60'
WHEN name = 'Храбрая сердцем' THEN 'Описание Храбрая сердцем'
WHEN name = 'Кунг-фу Панда' THEN 'Описание Кунг-фу Панда'
WHEN name = 'Рататуй' THEN 'Описание Рататуй'
WHEN name = 'Голодные игры' THEN 'Описание Голодные игры'
WHEN name = 'Мадагаскар' THEN 'Описание Мадагаскар'
WHEN name = 'Человек-паук' THEN 'Описание Человек-паук'
WHEN name = 'Кунг-фу Панда 2' THEN 'Описание Кунг-фу Панда 2'
WHEN name = 'Мечтатели' THEN 'Описание Мечтатели'
WHEN name = 'Гарри Поттер и узник Азкабана' THEN 'Описание Гарри Поттер и узник Азкабана'
WHEN name = 'Люди Икс' THEN 'Описание Люди Икс'
WHEN name = 'Хранители' THEN 'Описание Хранители'
WHEN name = 'Трансформеры' THEN 'Описание Трансформеры'
WHEN name = 'Темный рыцарь: Возрождение легенды' THEN 'Описание Темный рыцарь: Возрождение легенды'
END;
-- Заполнение таблицы timetable_auditoriums
INSERT INTO timetable_auditoriums (number, row_count) VALUES
('Зал 1', 10), -- Зал 1, 10 рядов
('Зал 2', 8), -- Зал 2, 8 рядов
('Зал 3', 12), -- Зал 3, 12 рядов
('Зал 4', 9), -- Зал 4, 9 рядов
('Зал 5', 11), -- Зал 5, 11 рядов
('Зал 6', 7), -- Зал 6, 7 рядов
('Зал 7', 10); -- Зал 7, 10 рядов
-- Предполагается, что в каждом зале 10 рядов и в каждом ряду 10 кресел.
-- Создаем вспомогательную таблицу numbers с числами от 1 до 10
CREATE TABLE numbers (n INTEGER PRIMARY KEY);
INSERT INTO numbers (n) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
-- Вставляем данные в таблицу timetable_rows для каждого зала
-- Предполагается, что в каждом зале 10 рядов и в каждом ряду 10 кресел.
-- Для Зала 1
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
1 AS auditorium_id -- ID Зала 1
FROM
numbers;
-- Для Зала 2
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
2 AS auditorium_id -- ID Зала 2
FROM
numbers;
-- Для Зала 3
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
3 AS auditorium_id -- ID Зала 3
FROM
numbers;
-- Для Зала 4
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
4 AS auditorium_id -- ID Зала 4
FROM
numbers;
-- Для Зала 5
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
5 AS auditorium_id -- ID Зала 5
FROM
numbers;
-- Для Зала 6
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
6 AS auditorium_id -- ID Зала 6
FROM
numbers;
-- Для Зала 7
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
n AS row_number,
10 AS column_count, -- Количество кресел в ряду
7 AS auditorium_id -- ID Зала 7
FROM
numbers;
-- Определим временной промежуток в рамках рабочего дня кинотеатра (10:00 - 22:00)
WITH RECURSIVE session_times AS (
SELECT strftime('%Y-%m-%d %H:%M', 'now', 'start of day', '+10 hours') AS start_datetime
UNION ALL
SELECT strftime('%Y-%m-%d %H:%M', start_datetime, '+2 hours') FROM session_times
WHERE start_datetime < strftime('%Y-%m-%d %H:%M', 'now', 'start of day', '+22 hours')
)
-- Вставим сеансы для каждого фильма в каждый зал
INSERT INTO timetable_film_sessions (start_datetime, price, auditorium_id, film_id)
SELECT
start_datetime,
10.00 AS price, -- Укажите цену билета здесь
auditoriums.id AS auditorium_id,
films.id AS film_id
FROM
session_times,
films_films AS films,
timetable_auditoriums AS auditoriums
ORDER BY
start_datetime, film_id;
-- Заполнение таблицы Режиссеров (Directors)
INSERT INTO films_directors (first_name, last_name) VALUES
('Кристофер', 'Нолан'),
('Стивен', 'Спилберг'),
('Квентин', 'Тарантино'),
('Мартин', 'Скорсезе'),
('Дэвид', 'Финчер'),
('Питер', 'Джексон'),
('Ридли', 'Скотт'),
('Джеймс', 'Кэмерон'),
('Стэнли', 'Кубрик'),
('Фрэнсис', 'Форд Коппола'),
('Альфред', 'Хичкок'),
('Джордж', 'Лукас');
-- Заполнение таблицы Актеров (Actors)
INSERT INTO films_actors (first_name, last_name) VALUES
('Том', 'Хэнкс'),
('Леонардо', 'ДиКаприо'),
('Мэттью', 'МакКонахи'),
('Дензел', 'Вашингтон'),
('Брэд', 'Питт'),
('Мэрил', 'Стрип'),
('Натали', 'Портман'),
('Джонни', 'Депп'),
('Кейт', 'Бланшетт'),
('Энди', 'Серкис'),
('Сигурни', 'Уивер'),
('Кейт', 'Уинслет');
-- Заполнение таблицы Стран (Countries)
INSERT INTO films_countries (name) VALUES
('США'),
('Великобритания'),
('Франция'),
('Германия'),
('Италия'),
('Канада'),
('Япония'),
('Индия'),
('Австралия'),
('Россия'),
('Китай'),
('Испания');
-- Добавление режиссеров к фильмам
INSERT INTO films_films_directors (film_id, director_id)
SELECT f.id AS film_id, d.id AS director_id
FROM films_films AS f
JOIN films_directors AS d ON d.id <= f.id
WHERE f.id BETWEEN 1 AND 40;
-- Добавление актеров к фильмам
INSERT INTO films_films_actors (film_id, actor_id)
SELECT f.id AS film_id, a.id AS actor_id
FROM films_films AS f
JOIN films_actors AS a ON a.id <= f.id
WHERE f.id BETWEEN 1 AND 40;
-- Добавление стран к фильмам
INSERT INTO films_films_countries (film_id, country_id)
SELECT f.id AS film_id, c.id AS country_id
FROM films_films AS f
JOIN films_countries AS c ON c.id <= f.id
WHERE f.id BETWEEN 1 AND 40;