Gestion d'une Boutique de Jeux Vidéo en Base de Données

Objectif : Cet exercice vous permettra de mettre en pratique vos connaissances sur les SGBDR, l'algèbre relationnelle, l'interrogation de bases de données, la mise à jour des données et la gestion des transactions.

Contexte

Vous travaillez pour une boutique de jeux vidéo qui souhaite améliorer la gestion de ses données. Vous allez créer une base de données complète pour gérer les informations sur les jeux, les développeurs, les transactions de vente et les clients.

Étapes de l'Exercice

1. Création de la Base de Données et des Tables

Créez une base de données appelée game_store. Dans cette base de données, vous devez créer les tables suivantes :

2. Script SQL pour la Création des Tables

-- Utiliser la base de données game_store
USE game_store;

-- Création de la table games
    game_id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    release_year YEAR NOT NULL,
    price DECIMAL(10, 2) NOT NULL

-- Création de la table developers
    developer_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    established_year YEAR
    
-- Création de la table game_developers
    id INT AUTO_INCREMENT PRIMARY KEY,
    game_id INT,
    developer_id INT,

-- Création de la table customers
    customer_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    phone VARCHAR(20),
    address TEXT

-- Création de la table sales
    sale_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT,
    sale_date DATE NOT NULL,

-- Création de la table sale_items
    sale_item_id INT AUTO_INCREMENT PRIMARY KEY,
    sale_id INT,
    game_id INT,
    quantity INT NOT NULL,

3. Insertion de Données Initiales

Insérez des données fictives pour peupler vos tables :

-- Insertion des jeux vidéo
INSERT INTO games (title, release_year, price) VALUES
('Adventure Quest', 2021, 59.99),
('Battle Arena', 2020, 49.99),
('Mystery Island', 2019, 39.99);

-- Insertion des développeurs
INSERT INTO developers (name, established_year) VALUES
('Alpha Studios', 2005),
('Beta Games', 2010),
('Gamma Developers', 2015);

-- Insertion des relations game_developers
INSERT INTO game_developers (game_id, developer_id) VALUES
(1, 1), -- Alpha Studios a développé "Adventure Quest"
(2, 2), -- Beta Games a développé "Battle Arena"
(3, 3); -- Gamma Developers a développé "Mystery Island"

-- Insertion des clients
INSERT INTO customers (name, email, phone, address) VALUES
('Alice Johnson', '[email protected]', '123-456-7890', '123 Main St, Anytown'),
('Bob Williams', '[email protected]', '098-765-4321', '456 Elm St, Othertown');

-- Insertion des ventes
INSERT INTO sales (customer_id, sale_date) VALUES
(1, '2024-06-01'),
(2, '2024-06-02');

-- Insertion des articles vendus
INSERT INTO sale_items (sale_id, game_id, quantity) VALUES
(1, 1, 2), -- Alice a acheté 2 exemplaires de "Adventure Quest"
(1, 3, 1), -- Alice a acheté 1 exemplaire de "Mystery Island"
(2, 2, 1); -- Bob a acheté 1 exemplaire de "Battle Arena"

4. Requêtes SQL