-- Drop the invite table if it exists
DROP TABLE IF EXISTS invite;
-- Create the invite table with more information
CREATE TABLE invite (
id_invite_invite INT AUTO_INCREMENT NOT NULL,
nom_invite VARCHAR(255) NOT NULL,
email_invite VARCHAR(255) UNIQUE NOT NULL,
date_inscription_invite DATE NOT NULL,
PRIMARY KEY(id_invite_invite)
) ENGINE = InnoDB;
-- Drop the commande table if it exists
DROP TABLE IF EXISTS commande;
-- Create the commande table with additional columns
CREATE TABLE commande (
id_commande_commande INT AUTO_INCREMENT NOT NULL,
id_invite_invite INT NOT NULL,
date_commande DATE NOT NULL,
montant_total DECIMAL(10, 2) NOT NULL,
statut_commande ENUM('En attente', 'Payée', 'Annulée') NOT NULL,
PRIMARY KEY(id_commande_commande),
FOREIGN KEY (id_invite_invite) REFERENCES invite(id_invite_invite)
) ENGINE = InnoDB;
Questions SQL :
1. Sélectionner le nom et l'email de tous les invités inscrits après le 1er janvier
2023.
2. Compter le nombre de commandes pour chaque statut de commande (En
attente, Payée, Annulée).
3. Afficher la liste des invités avec le montant total de toutes leurs commandes
combinées.
4. Obtenir le nombre total de commandes par invité avec une date de commande
après le 1er septembre 2024.
5. Sélectionner toutes les commandes dont le montant est supérieur à 1000 et dont
le statut est 'Payée'.
6. Lister les invités qui n'ont jamais passé de commande.
7. Trouver les commandes passées le mois dernier (par rapport à la date actuelle).
8. Obtenir les détails des commandes les plus récentes (triées par date de
commande).
9. Afficher la liste des invités avec le nombre de commandes annulées.
10. Mettre à jour le statut de toutes les commandes dont la date est antérieure au
1er janvier 2024 et qui sont toujours en attente.
11. Trouver l'invité qui a dépensé le plus d'argent en commandes.
12. Afficher la date et le montant de la commande la plus élevée.
13. Lister toutes les commandes avec leur invité, triées par montant décroissant.
14. Supprimer toutes les commandes avec un statut 'Annulée' et une date de
commande dépassant 6 mois.
15. Ajouter une nouvelle commande avec un montant, une date et un invité donné.