SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
DROP SCHEMA IF EXISTS Project CASCADE; CREATE SCHEMA Project; SET SEARCH_PATH TO Project; CREATE TABLE Cinema ( cinema_id SERIAL PRIMARY KEY, cinema_nm VARCHAR(255) NOT NULL, city_nm VARCHAR(255) NOT NULL, address TEXT NOT NULL ); CREATE TABLE Hall ( hall_id SERIAL PRIMARY KEY, hall_no INTEGER CHECK (hall_no > 0), cinema_id INTEGER REFERENCES Cinema(cinema_id) ); CREATE TABLE Film ( film_id SERIAL PRIMARY KEY, film_title VARCHAR(255) NOT NULL, film_desc TEXT, age_limit INTEGER DEFAULT 0::integer CHECK (age_limit BETWEEN 0 AND 18), length_min INTEGER CHECK (length_min > 0) ); CREATE TABLE Genre ( genre_id SERIAL PRIMARY KEY, genre_nm VARCHAR(255) NOT NULL ); CREATE TABLE GenreXFilm ( genre_id INTEGER REFERENCES Genre(genre_id), film_id INTEGER REFERENCES Film(film_id), PRIMARY KEY (genre_id, film_id) ); CREATE TABLE MovieRental ( film_id INTEGER REFERENCES Film(film_id), rental_from_dt DATE, rental_to_dt DATE DEFAULT '5999-01-01'::date CHECK (rental_from_dt < rental_to_dt), PRIMARY KEY (film_id, rental_from_dt) ); CREATE TABLE Session ( session_id SERIAL PRIMARY KEY, session_dttm TIMESTAMP NOT NULL, film_id INTEGER REFERENCES Film(film_id), hall_id INTEGER REFERENCES Hall(hall_id), threed_flg INTEGER DEFAULT 0::integer CHECK (threed_flg = 0 OR threed_flg = 1), price INTEGER CHECK (price >= 0) ); CREATE TABLE Users ( login VARCHAR(255) PRIMARY KEY, password VARCHAR(255) NOT NULL, user_nm VARCHAR(255) NOT NULL, email VARCHAR(255), birthday_dt DATE ); CREATE TABLE Ticket ( ticket_id SERIAL PRIMARY KEY, session_id INTEGER REFERENCES Session(session_id), row_no INTEGER CHECK (row_no > 0), seat_no INTEGER CHECK (seat_no > 0), user_login VARCHAR(255) REFERENCES Users(login) ); INSERT INTO Cinema(cinema_nm, city_nm, address) VALUES ('Киномакс', 'Москва', 'ул. Кожуховская 7-я, 9'), ('Киномакс', 'Москва', 'ул. Дмитровское шоссе, 89'), ('Киномакс', 'Ижевск', 'ул. Холмогорова, 11'), ('Киномакс', 'Санкт-Петербург', 'ул. Васи Алексеева, 6'), ('Каро 7 Атмосфера', 'Санкт-Петербург', 'пл. Комендантская, 1'), ('Каро 7 на Стачек', 'Санкт-Петербург', 'пр. Стачек, 99'), ('Галакс', 'Долгопрудный', 'Лихочёвский просп., 64'), ('Синема Парк Европейский', 'Москва', 'пл. Киевского вокзала, 2'), ('Синема Парк на Калужской', 'Москва', 'ул. Профсоюзная, 61а'), ('Синема Парк Петровский', 'Ижевск', 'ул. Петрова, 29'); INSERT INTO Hall(hall_no, cinema_id) VALUES (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (1, 2), (2, 2), (3, 2), (4, 2), (1, 3), (2, 3), (3, 3), (1, 4), (2, 4), (3, 4), (4, 4), (5, 4), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5), (6, 5), (7, 5), (1, 6), (2, 6), (3, 6), (4, 6), (5, 6), (6, 6), (7, 6), (1, 7), (2, 7), (1, 8), (2, 8), (3, 8), (4, 8), (5, 8), (6, 8), (1, 9), (2, 9), (3, 9), (4, 9), (5, 9), (1, 10), (2, 10), (3, 10), (4, 10); INSERT INTO Film VALUES (1, 'Зверополис', 'Welcome to the urban jungle', 0, 108), (2, 'Гарри Поттер и узник Азкабана', 'Всё изменится', 12, 142), (3, 'Головоломка', 'Нет слов, одни эмоции', 6, 95), (4, 'Фирма', 'They made him an offer he should have refused', 16, 154), (5, 'Экзамен', 'Как далеко вы готовы пойти, чтобы получить работу?', 16, 101), (6, 'Ла-Ла Лэнд', 'Бесстрашным мечтателям посвящается…', 16, 128), (7, 'Оно', 'А чего боишься ты?', 18, 135), (8, 'Ходячий замок', NULL, 6, 119), (9, 'Легенда №17', NULL, 6, 134), (10, 'Хоббит: Нежданное путешествие', 'From the smallest beginnings come the greatest legends', 6, 169); INSERT INTO Genre VALUES (1, 'мультфильм'), (2, 'комедия'), (3, 'криминал'), (4, 'детектив'), (5, 'приключения'), (6, 'семейный'), (7, 'фэнтези'), (8, 'триллер'), (9, 'драма'), (10, 'мюзикл'), (11, 'мелодрама'), (12, 'ужасы'), (13, 'аниме'), (14, 'спорт'), (15, 'биография'), (16, 'боевик'); INSERT INTO GenreXFilm VALUES (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (5, 2), (6, 2), (7, 2), (1, 3), (2, 3), (6, 3), (4, 4), (8, 4), (9, 4), (4, 5), (8, 5), (2, 6), (9, 6), (10, 6), (11, 6), (4, 7), (7, 7), (9, 7), (12, 7), (1, 8), (5, 8), (7, 8), (11, 8), (13, 8), (9, 9), (14, 9), (15, 9), (7, 10), (5, 10), (16, 10); INSERT INTO MovieRental VALUES (1, '2016-03-03', '2016-04-03'), (2, '2004-06-03', '2004-07-15'), (2, '2022-05-05', '5999-01-01'), (3, '2015-06-18', '2015-07-31'), (4, '2022-04-17', '5999-01-01'), (5, '2010-06-10', '2010-06-30'), (6, '2017-01-12', '2017-02-20'), (7, '2017-09-07', '2017-10-07'), (8, '2005-08-25', '2005-09-30'), (8, '2015-08-25', '2015-09-30'), (9, '2013-04-18', '2013-05-18'), (9, '2018-04-18', '2018-05-18'), (9, '2022-04-18', '2022-05-18'), (10, '2011-11-28', '2012-01-01'), (10, '2022-04-28', '2022-05-31'); INSERT INTO Session(session_dttm, film_id, hall_id, threed_flg, price) VALUES ('2016-03-03 12:00:00', 1, 7, 1, 200), ('2016-03-31 15:30:00', 1, 9, 0, 300), ('2004-06-10 18:00:00', 2, 5, 0, 250), ('2022-06-05 09:00:00', 2, 2, 0, 150), ('2015-06-20 13:20:00', 3, 15, 1, 300), ('2022-06-01 21:00:00', 4, 34, 0, 250), ('2010-06-30 20:30:00', 5, 43, 0, 250), ('2017-01-25 16:00:00', 6, 33, 0, 250), ('2017-02-15 14:40:00', 6, 48, 0, 150), ('2017-09-30 22:00:00', 7, 25, 0, 250), ('2005-08-25 11:00:00', 8, 1, 0, 300), ('2015-09-07 15:00:00', 8, 13, 0, 200), ('2018-04-18 14:00:00', 9, 20, 0, 250), ('2022-05-08 17:00:00', 9, 44, 0, 300), ('2011-11-30 10:30:00', 10, 11, 0, 150), ('2022-05-20 19:00:00', 10, 35, 0, 300), ('2022-05-31 15:00:00', 10, 34, 0, 300); INSERT INTO Users VALUES ('thawa', '0000', 'Костина Катя', 'ekostina02@gmail.com', '2002-06-09'), ('user2', '1234', 'Иванов Иван', NULL, '2000-01-01'), ('kot', 'kot', 'Котов Саша', 'kotov@gmail.com', NULL), ('best_user', 'bestbest', 'Седлова Полина', 'best@yandex.ru', '2001-10-11'), ('superman', 'bulkbulk', 'Вжик Алексей', 'lovelas77@mail.ru', '1977-02-14'), ('fairy', '74567', 'Дилионова Алевтина', NULL, '1960-12-31'), ('sporty', 'sos', 'Паровозов Аркадий', 'navsegda@yandex.ru', '1931-11-13'), ('winx', '1magic1', 'Огнева Блум', 'alfeyalife@gmail.com', '2008-08-07'), ('mosgoprav', '3848dsa', 'Дубинин Борис', 'dubina@mail.ru', '1990-09-25'), ('raigor', 'dmthebest', 'Райгородский Андрей', 'mraigor@yandex.ru', '1976-09-18'); INSERT INTO Ticket(session_id, row_no, seat_no, user_login) VALUES (1, 3, 20, 'kot'), (3, 6, 2, 'sporty'), (3, 7, 10, 'fairy'), (5, 5, 8, 'winx'), (6, 10, 7, 'mosgoprav'), (7, 7, 15, 'raigor'), (8, 1, 20, 'user2'), (11, 10, 3, 'best_user'), (14, 3, 15, 'superman'), (16, 15, 15, 'thawa'); SELECT film_id, SUM(tick) FROM Session JOIN (SELECT session_id, 1 tick FROM Ticket) USING(session_id)
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear