Exercices corrigés sur le langage SQL
Vous gérez une base de données pour un magasin en ligne. La base contient les tables Clients
et Commandes
.
• Créer une table pour stocker les clients (id_client, nom, email)
• Créer une table pour stocker les commandes (id_commande, id_client, date_commande, montant_total)
• Afficher toutes les commandes avec les informations du client correspondant.
1. Créer la table des clients :
CREATE TABLE Clients (
id_client INT PRIMARY KEY,
nom VARCHAR(50),
email VARCHAR(50) UNIQUE
);
2. Créer la table des commandes :
CREATE TABLE Commandes (
id_commande INT PRIMARY KEY,
id_client INT,
date_commande DATE,
montant_total DECIMAL(10,2),
FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);
3. Afficher toutes les commandes avec les informations du client :
SELECT Clients.nom, Commandes.date_commande, Commandes.montant_total
FROM Commandes
JOIN Clients ON Commandes.id_client = Clients.id_client;
Vous travaillez pour une compagnie aérienne. La base contient les tables Pilotes
, Vols
et Avions
.
• Créer une table pour stocker les pilotes (id_pilote, nom, experience)
• Créer une table pour stocker les vols (id_vol, id_pilote, destination, date_vol)
• Créer une table pour stocker les avions (id_avion, type_avion)
• Afficher tous les vols avec les informations du pilote et de l'avion.
1. Créer la table des pilotes :
CREATE TABLE Pilotes (
id_pilote INT PRIMARY KEY,
nom VARCHAR(50),
experience INT
);
2. Créer la table des vols :
CREATE TABLE Vols (
id_vol INT PRIMARY KEY,
id_pilote INT,
destination VARCHAR(50),
date_vol DATE,
FOREIGN KEY (id_pilote) REFERENCES Pilotes(id_pilote)
);
3. Créer la table des avions :
CREATE TABLE Avions (
id_avion INT PRIMARY KEY,
type_avion VARCHAR(50)
);
4. Afficher tous les vols avec les informations du pilote et de l'avion :
SELECT Vols.date_vol, Pilotes.nom AS pilote, Avions.type_avion
FROM Vols
JOIN Pilotes ON Vols.id_pilote = Pilotes.id_pilote
JOIN Avions ON Vols.id_avion = Avions.id_avion;
Vous gérez une base de données pour une bibliothèque. La base contient les tables Auteurs
, Livres
et Emprunts
.
• Créer une table pour stocker les auteurs (id_auteur, nom, prenom)
• Créer une table pour stocker les livres (id_livre, titre, id_auteur)
• Créer une table pour stocker les emprunts (id_emprunt, id_livre, date_emprunt, id_emprunteur)
• Afficher tous les livres empruntés avec les informations de l'auteur.
1. Créer la table des auteurs :
CREATE TABLE Auteurs (
id_auteur INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des livres :
CREATE TABLE Livres (
id_livre INT PRIMARY KEY,
titre VARCHAR(100),
id_auteur INT,
FOREIGN KEY (id_auteur) REFERENCES Auteurs(id_auteur)
);
3. Créer la table des emprunts :
CREATE TABLE Emprunts (
id_emprunt INT PRIMARY KEY,
id_livre INT,
date_emprunt DATE,
id_emprunteur INT,
FOREIGN KEY (id_livre) REFERENCES Livres(id_livre)
);
4. Afficher tous les livres empruntés avec les informations de l'auteur :
SELECT Livres.titre, Auteurs.nom, Auteurs.prenom
FROM Emprunts
JOIN Livres ON Emprunts.id_livre = Livres.id_livre
JOIN Auteurs ON Livres.id_auteur = Auteurs.id_auteur;
Vous êtes responsable d'un système de gestion de projets. La base contient les tables Employes
, Projets
et Participations
.
• Créer une table pour stocker les employés (id_employe, nom, prenom)
• Créer une table pour stocker les projets (id_projet, nom_projet, date_debut)
• Créer une table pour stocker les participations (id_projet, id_employe)
• Afficher tous les projets avec les informations des employés participant.
1. Créer la table des employés :
CREATE TABLE Employes (
id_employe INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des projets :
CREATE TABLE Projets (
id_projet INT PRIMARY KEY,
nom_projet VARCHAR(100),
date_debut DATE
);
3. Créer la table des participations :
CREATE TABLE Participations (
id_projet INT,
id_employe INT,
PRIMARY KEY (id_projet, id_employe),
FOREIGN KEY (id_projet) REFERENCES Projets(id_projet),
FOREIGN KEY (id_employe) REFERENCES Employes(id_employe)
);
4. Afficher tous les projets avec les informations des employés participant :
SELECT Projets.nom_projet, Employes.nom, Employes.prenom
FROM Participations
JOIN Projets ON Participations.id_projet = Projets.id_projet
JOIN Employes ON Participations.id_employe = Employes.id_employe;
Vous êtes responsable d'un service de gestion de commandes dans un restaurant. La base contient les tables Clients
, Commandes
, et Plats
.
• Créer une table pour stocker les clients (id_client, nom, adresse)
• Créer une table pour stocker les commandes (id_commande, id_client, date_commande)
• Créer une table pour stocker les plats (id_plat, nom_plat, prix)
• Créer une table pour stocker les lignes de commande (id_commande, id_plat, quantite)
• Afficher toutes les commandes avec les détails des plats commandés et les informations du client.
1. Créer la table des clients :
CREATE TABLE Clients (
id_client INT PRIMARY KEY,
nom VARCHAR(50),
adresse VARCHAR(100)
);
2. Créer la table des commandes :
CREATE TABLE Commandes (
id_commande INT PRIMARY KEY,
id_client INT,
date_commande DATE,
FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);
3. Créer la table des plats :
CREATE TABLE Plats (
id_plat INT PRIMARY KEY,
nom_plat VARCHAR(50),
prix DECIMAL(10,2)
);
4. Créer la table des lignes de commande :
CREATE TABLE Lignes_Commande (
id_commande INT,
id_plat INT,
quantite INT,
PRIMARY KEY (id_commande, id_plat),
FOREIGN KEY (id_commande) REFERENCES Commandes(id_commande),
FOREIGN KEY (id_plat) REFERENCES Plats(id_plat)
);
5. Afficher toutes les commandes avec les détails des plats commandés et les informations du client :
SELECT Clients.nom, Commandes.date_commande, Plats.nom_plat, Lignes_Commande.quantite
FROM Lignes_Commande
JOIN Commandes ON Lignes_Commande.id_commande = Commandes.id_commande
JOIN Clients ON Commandes.id_client = Clients.id_client
JOIN Plats ON Lignes_Commande.id_plat = Plats.id_plat;
Vous gérez une base de données pour une école. La base contient les tables Etudiants
, Cours
et Inscription
.
• Créer une table pour stocker les étudiants (id_etudiant, nom, prenom)
• Créer une table pour stocker les cours (id_cours, titre, credit)
• Créer une table pour stocker les inscriptions (id_inscription, id_etudiant, id_cours)
• Afficher tous les étudiants avec les cours auxquels ils sont inscrits.
1. Créer la table des étudiants :
CREATE TABLE Etudiants (
id_etudiant INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des cours :
CREATE TABLE Cours (
id_cours INT PRIMARY KEY,
titre VARCHAR(100),
credit INT
);
3. Créer la table des inscriptions :
CREATE TABLE Inscription (
id_inscription INT PRIMARY KEY,
id_etudiant INT,
id_cours INT,
FOREIGN KEY (id_etudiant) REFERENCES Etudiants(id_etudiant),
FOREIGN KEY (id_cours) REFERENCES Cours(id_cours)
);
4. Afficher tous les étudiants avec les cours auxquels ils sont inscrits :
SELECT Etudiants.nom, Etudiants.prenom, Cours.titre
FROM Inscription
JOIN Etudiants ON Inscription.id_etudiant = Etudiants.id_etudiant
JOIN Cours ON Inscription.id_cours = Cours.id_cours;
Vous travaillez pour un service de transport. La base contient les tables Chauffeurs
, Véhicules
et Trajets
.
• Créer une table pour stocker les chauffeurs (id_chauffeur, nom, prenom)
• Créer une table pour stocker les véhicules (id_vehicule, marque, modele)
• Créer une table pour stocker les trajets (id_trajet, id_chauffeur, id_vehicule, distance)
• Afficher tous les trajets avec les informations du chauffeur et du véhicule utilisé.
1. Créer la table des chauffeurs :
CREATE TABLE Chauffeurs (
id_chauffeur INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des véhicules :
CREATE TABLE Vehicules (
id_vehicule INT PRIMARY KEY,
marque VARCHAR(50),
modele VARCHAR(50)
);
3. Créer la table des trajets :
CREATE TABLE Trajets (
id_trajet INT PRIMARY KEY,
id_chauffeur INT,
id_vehicule INT,
distance DECIMAL(10,2),
FOREIGN KEY (id_chauffeur) REFERENCES Chauffeurs(id_chauffeur),
FOREIGN KEY (id_vehicule) REFERENCES Vehicules(id_vehicule)
);
4. Afficher tous les trajets avec les informations du chauffeur et du véhicule :
SELECT Trajets.distance, Chauffeurs.nom, Chauffeurs.prenom, Vehicules.marque, Vehicules.modele
FROM Trajets
JOIN Chauffeurs ON Trajets.id_chauffeur = Chauffeurs.id_chauffeur
JOIN Vehicules ON Trajets.id_vehicule = Vehicules.id_vehicule;
Vous êtes en charge d'un système de gestion de commandes dans un restaurant. La base contient les tables Clients
, Commandes
, Plats
, et Lignes_Commande
.
• Créer une table pour stocker les clients (id_client, nom, adresse)
• Créer une table pour stocker les commandes (id_commande, id_client, date_commande)
• Créer une table pour stocker les plats (id_plat, nom_plat, prix)
• Créer une table pour stocker les lignes de commande (id_commande, id_plat, quantite)
• Afficher toutes les commandes avec les détails des plats commandés et les informations du client.
1. Créer la table des clients :
CREATE TABLE Clients (
id_client INT PRIMARY KEY,
nom VARCHAR(50),
adresse VARCHAR(100)
);
2. Créer la table des commandes :
CREATE TABLE Commandes (
id_commande INT PRIMARY KEY,
id_client INT,
date_commande DATE,
FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);
3. Créer la table des plats :
CREATE TABLE Plats (
id_plat INT PRIMARY KEY,
nom_plat VARCHAR(50),
prix DECIMAL(10,2)
);
4. Créer la table des lignes de commande :
CREATE TABLE Lignes_Commande (
id_commande INT,
id_plat INT,
quantite INT,
PRIMARY KEY (id_commande, id_plat),
FOREIGN KEY (id_commande) REFERENCES Commandes(id_commande),
FOREIGN KEY (id_plat) REFERENCES Plats(id_plat)
);
5. Afficher toutes les commandes avec les détails des plats commandés et les informations du client :
SELECT Clients.nom, Commandes.date_commande, Plats.nom_plat, Lignes_Commande.quantite
FROM Lignes_Commande
JOIN Commandes ON Lignes_Commande.id_commande = Commandes.id_commande
JOIN Clients ON Commandes.id_client = Clients.id_client
JOIN Plats ON Lignes_Commande.id_plat = Plats.id_plat;
Vous gérez une base de données pour un réseau social. La base contient les tables Utilisateurs
, Amis
, et Publications
.
• Créer une table pour stocker les utilisateurs (id_utilisateur, nom, prenom)
• Créer une table pour stocker les relations d'amitié (id_utilisateur1, id_utilisateur2)
• Créer une table pour stocker les publications (id_publication, id_utilisateur, contenu)
• Afficher toutes les publications avec les informations de l'utilisateur qui les a créées.
1. Créer la table des utilisateurs :
CREATE TABLE Utilisateurs (
id_utilisateur INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des amis :
CREATE TABLE Amis (
id_utilisateur1 INT,
id_utilisateur2 INT,
PRIMARY KEY (id_utilisateur1, id_utilisateur2),
FOREIGN KEY (id_utilisateur1) REFERENCES Utilisateurs(id_utilisateur),
FOREIGN KEY (id_utilisateur2) REFERENCES Utilisateurs(id_utilisateur)
);
3. Créer la table des publications :
CREATE TABLE Publications (
id_publication INT PRIMARY KEY,
id_utilisateur INT,
contenu TEXT,
FOREIGN KEY (id_utilisateur) REFERENCES Utilisateurs(id_utilisateur)
);
4. Afficher toutes les publications avec les informations de l'utilisateur :
SELECT Publications.contenu, Utilisateurs.nom, Utilisateurs.prenom
FROM Publications
JOIN Utilisateurs ON Publications.id_utilisateur = Utilisateurs.id_utilisateur;
Vous travaillez pour un service de gestion de produits. La base contient les tables Fournisseurs
, Produits
, et Commandes
.
• Créer une table pour stocker les fournisseurs (id_fournisseur, nom, contact)
• Créer une table pour stocker les produits (id_produit, nom_produit, id_fournisseur, prix)
• Créer une table pour stocker les commandes (id_commande, id_produit, quantite)
• Afficher toutes les commandes avec les informations du produit et du fournisseur.
1. Créer la table des fournisseurs :
CREATE TABLE Fournisseurs (
id_fournisseur INT PRIMARY KEY,
nom VARCHAR(50),
contact VARCHAR(50)
);
2. Créer la table des produits :
CREATE TABLE Produits (
id_produit INT PRIMARY KEY,
nom_produit VARCHAR(50),
id_fournisseur INT,
prix DECIMAL(10,2),
FOREIGN KEY (id_fournisseur) REFERENCES Fournisseurs(id_fournisseur)
);
3. Créer la table des commandes :
CREATE TABLE Commandes (
id_commande INT PRIMARY KEY,
id_produit INT,
quantite INT,
FOREIGN KEY (id_produit) REFERENCES Produits(id_produit)
);
4. Afficher toutes les commandes avec les informations du produit et du fournisseur :
SELECT Commandes.quantite, Produits.nom_produit, Fournisseurs.nom
FROM Commandes
JOIN Produits ON Commandes.id_produit = Produits.id_produit
JOIN Fournisseurs ON Produits.id_fournisseur = Fournisseurs.id_fournisseur;
Vous gérez une base de données pour un service de location de voitures. La base contient les tables Clients
, Réservations
, et Voitures
.
• Créer une table pour stocker les clients (id_client, nom, email)
• Créer une table pour stocker les réservations (id_reservation, id_client, id_voiture, date_reservation)
• Créer une table pour stocker les voitures (id_voiture, marque, modele)
• Afficher toutes les réservations avec les informations du client et de la voiture.
1. Créer la table des clients :
CREATE TABLE Clients (
id_client INT PRIMARY KEY,
nom VARCHAR(50),
email VARCHAR(50) UNIQUE
);
2. Créer la table des réservations :
CREATE TABLE Reservations (
id_reservation INT PRIMARY KEY,
id_client INT,
id_voiture INT,
date_reservation DATE,
FOREIGN KEY (id_client) REFERENCES Clients(id_client)
);
3. Créer la table des voitures :
CREATE TABLE Voitures (
id_voiture INT PRIMARY KEY,
marque VARCHAR(50),
modele VARCHAR(50)
);
4. Afficher toutes les réservations avec les informations du client et de la voiture :
SELECT Clients.nom, Voitures.marque, Voitures.modele, Reservations.date_reservation
FROM Reservations
JOIN Clients ON Reservations.id_client = Clients.id_client
JOIN Voitures ON Reservations.id_voiture = Voitures.id_voiture;
Vous travaillez pour un système de gestion de bibliothèque. La base contient les tables Auteurs
, Livres
, et Emprunts
.
• Créer une table pour stocker les auteurs (id_auteur, nom, prenom)
• Créer une table pour stocker les livres (id_livre, titre, id_auteur)
• Créer une table pour stocker les emprunts (id_emprunt, id_livre, date_emprunt, id_emprunteur)
• Afficher tous les livres empruntés avec les informations de l'auteur et de l'emprunteur.
1. Créer la table des auteurs :
CREATE TABLE Auteurs (
id_auteur INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des livres :
CREATE TABLE Livres (
id_livre INT PRIMARY KEY,
titre VARCHAR(100),
id_auteur INT,
FOREIGN KEY (id_auteur) REFERENCES Auteurs(id_auteur)
);
3. Créer la table des emprunts :
CREATE TABLE Emprunts (
id_emprunt INT PRIMARY KEY,
id_livre INT,
date_emprunt DATE,
id_emprunteur INT,
FOREIGN KEY (id_livre) REFERENCES Livres(id_livre)
);
4. Afficher tous les livres empruntés avec les informations de l'auteur :
SELECT Livres.titre, Auteurs.nom, Auteurs.prenom, Emprunts.date_emprunt
FROM Emprunts
JOIN Livres ON Emprunts.id_livre = Livres.id_livre
JOIN Auteurs ON Livres.id_auteur = Auteurs.id_auteur;
Vous gérez une base de données pour un événement. La base contient les tables Participants
, Ateliers
, et Inscription
.
• Créer une table pour stocker les participants (id_participant, nom, prenom)
• Créer une table pour stocker les ateliers (id_atelier, titre, date_atelier)
• Créer une table pour stocker les inscriptions (id_inscription, id_participant, id_atelier)
• Afficher tous les ateliers avec les informations des participants inscrits.
1. Créer la table des participants :
CREATE TABLE Participants (
id_participant INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des ateliers :
CREATE TABLE Ateliers (
id_atelier INT PRIMARY KEY,
titre VARCHAR(100),
date_atelier DATE
);
3. Créer la table des inscriptions :
CREATE TABLE Inscription (
id_inscription INT PRIMARY KEY,
id_participant INT,
id_atelier INT,
FOREIGN KEY (id_participant) REFERENCES Participants(id_participant),
FOREIGN KEY (id_atelier) REFERENCES Ateliers(id_atelier)
);
4. Afficher tous les ateliers avec les informations des participants inscrits :
SELECT Ateliers.titre, Participants.nom, Participants.prenom
FROM Inscription
JOIN Ateliers ON Inscription.id_atelier = Ateliers.id_atelier
JOIN Participants ON Inscription.id_participant = Participants.id_participant;
Vous êtes responsable d'un service d'enregistrement des patients dans un hôpital. La base contient les tables Patients
, Docteurs
, et Consultations
.
• Créer une table pour stocker les patients (id_patient, nom, prenom)
• Créer une table pour stocker les docteurs (id_docteur, nom, specialite)
• Créer une table pour stocker les consultations (id_consultation, id_patient, id_docteur, date_consultation)
• Afficher toutes les consultations avec les informations des patients et des docteurs.
1. Créer la table des patients :
CREATE TABLE Patients (
id_patient INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des docteurs :
CREATE TABLE Docteurs (
id_docteur INT PRIMARY KEY,
nom VARCHAR(50),
specialite VARCHAR(50)
);
3. Créer la table des consultations :
CREATE TABLE Consultations (
id_consultation INT PRIMARY KEY,
id_patient INT,
id_docteur INT,
date_consultation DATE,
FOREIGN KEY (id_patient) REFERENCES Patients(id_patient),
FOREIGN KEY (id_docteur) REFERENCES Docteurs(id_docteur)
);
4. Afficher toutes les consultations avec les informations des patients et des docteurs :
SELECT Patients.nom AS patient_nom, Patients.prenom AS patient_prenom, Docteurs.nom AS docteur_nom, Consultations.date_consultation
FROM Consultations
JOIN Patients ON Consultations.id_patient = Patients.id_patient
JOIN Docteurs ON Consultations.id_docteur = Docteurs.id_docteur;
Vous êtes en charge d'un système de gestion d'une administration locale. La base contient les tables Citoyens
, Services
, et Demandes
.
• Créer une table pour stocker les citoyens (id_citoyen, nom, prenom)
• Créer une table pour stocker les services (id_service, nom_service)
• Créer une table pour stocker les demandes (id_demande, id_citoyen, id_service, date_demande)
• Afficher toutes les demandes avec les informations du citoyen et du service demandé.
1. Créer la table des citoyens :
CREATE TABLE Citoyens (
id_citoyen INT PRIMARY KEY,
nom VARCHAR(50),
prenom VARCHAR(50)
);
2. Créer la table des services :
CREATE TABLE Services (
id_service INT PRIMARY KEY,
nom_service VARCHAR(50)
);
3. Créer la table des demandes :
CREATE TABLE Demandes (
id_demande INT PRIMARY KEY,
id_citoyen INT,
id_service INT,
date_demande DATE,
FOREIGN KEY (id_citoyen) REFERENCES Citoyens(id_citoyen),
FOREIGN KEY (id_service) REFERENCES Services(id_service)
);
4. Afficher toutes les demandes avec les informations du citoyen et du service demandé :
SELECT Citoyens.nom AS citoyen_nom, Citoyens.prenom AS citoyen_prenom, Services.nom_service, Demandes.date_demande
FROM Demandes
JOIN Citoyens ON Demandes.id_citoyen = Citoyens.id_citoyen
JOIN Services ON Demandes.id_service = Services.id_service;
Les mathématiques ont souvent la réputation d'être une discipline austère et difficile, mais ...
Read more.Plongez dans l'univers fascinant des suites numériques, où chaque terme révèle des patterns surprenants et des applications pratiques dans les mathématiques et au-delà.
Read more.Découvrez comment les fonctions tissent des liens entre les nombres et les concepts, transformant des idées abstraites en outils puissants pour résoudre des problèmes du quotidien.
Read more.Abonnez-vous maintenant et recevez notre newsletter hebdomadaire avec des matériaux éducatifs, de nouveaux cours, des articles intéressants, des livres populaires et bien plus encore !