Загрузка данных


-- 1. Создаём таблицу жанров
CREATE TABLE genres (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);

-- 2. Создаём таблицу игр со связью (внешний ключ)
CREATE TABLE games (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    min_age INT NOT NULL,
    genre_id INT,
    FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
);

-- 3. Добавляем 5 жанров
INSERT INTO genres (name) VALUES 
('RPG'), 
('Shooter'), 
('Strategy'), 
('Adventure'), 
('Simulation');

-- 4. Добавляем по 5 игр на каждый жанр (всего 25 игр)

-- Жанр 1: RPG (genre_id = 1)
INSERT INTO games (name, min_age, genre_id) VALUES 
('The Witcher 3', 18, 1),
('Skyrim', 16, 1),
('Baldurs Gate 3', 18, 1),
('Fallout 4', 16, 1),
('Mass Effect 2', 16, 1);

-- Жанр 2: Shooter (genre_id = 2)
INSERT INTO games (name, min_age, genre_id) VALUES 
('Counter-Strike 2', 16, 2),
('Call of Duty: MW3', 18, 2),
('Battlefield 2042', 18, 2),
('DOOM Eternal', 18, 2),
('Valorant', 16, 2);

-- Жанр 3: Strategy (genre_id = 3)
INSERT INTO games (name, min_age, genre_id) VALUES 
('Civilization VI', 12, 3),
('StarCraft II', 12, 3),
('Age of Empires IV', 12, 3),
('XCOM 2', 16, 3),
('Total War: Warhammer III', 16, 3);

-- Жанр 4: Adventure (genre_id = 4)
INSERT INTO games (name, min_age, genre_id) VALUES 
('Uncharted 4', 16, 4),
('Tomb Raider', 16, 4),
('Red Dead Redemption 2', 18, 4),
('God of War', 18, 4),
('Assassins Creed Valhalla', 18, 4);

-- Жанр 5: Simulation (genre_id = 5)
INSERT INTO games (name, min_age, genre_id) VALUES 
('The Sims 4', 12, 5),
('Cities: Skylines II', 0, 5),
('Euro Truck Simulator 2', 0, 5),
('Farming Simulator 22', 0, 5),
('Microsoft Flight Simulator', 0, 5);

-- 5. Проверка (выведет все игры с названиями их жанров)
SELECT games.name AS "Игра", genres.name AS "Жанр", games.min_age AS "Мин_возраст"
FROM games
JOIN genres ON games.genre_id = genres.id;