DML_Exercice_03
| Créé par | Nadia Egger edufr |
|---|---|
| Description | INSERT / SELECT / CONTRAINTES (DML) |
| Étiquettes | Exercices DML |

Vos tâches…
Voici un script SQL de création de la base de données db_voyage. Cette base de données permet de gérer les aspects clés d'une agence de voyage, en connectant les clients, leurs réservations de vols et d'hôtels, et leurs avis sur les hôtels.
1. Les contraintes
Complétez le script afin que les données soient intègres en rajoutant l’obligation des valeurs de champs quand elles sont nécessaires, en assurant l’unicité des enregistrements.
💡
Pour la table t_reservation : on s’assure que par défaut, la date de fin correspond à une semaine après la date du début
Pour la table
t_avis : les notes possibles sont de 1 à 4. On s’assure que les autres notes ne soient pas possibles.
Pour la table
t_avis : les notes possibles sont de 1 à 4. On s’assure que les autres notes ne soient pas possibles.
CREATE DATABASE IF NOT EXISTS db_voyage CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
USE db_voyage;
-- Création de la table Client
CREATE TABLE t_client (
pk_client INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(45),
prenom VARCHAR(45),
email VARCHAR(45)
);
-- Création de la table Destination
CREATE TABLE t_destination (
pk_destination INT PRIMARY KEY AUTO_INCREMENT,
nom_destination VARCHAR(45),
pays VARCHAR(50)
);
-- Création de la table Hôtel
CREATE TABLE t_hotel (
pk_hotel INT PRIMARY KEY AUTO_INCREMENT,
nom_hotel VARCHAR(255),
fk_destination INT,
CONSTRAINT fk_hotel_destination FOREIGN KEY (fk_destination) REFERENCES t_destination(pk_destination)
);
-- Création de la table Vol
CREATE TABLE t_vol (
pk_vol INT PRIMARY KEY AUTO_INCREMENT,
compagnie_aerienne VARCHAR(80),
numero_vol VARCHAR(10),
fk_destination INT,
CONSTRAINT fk_vol_destination FOREIGN KEY (fk_destination) REFERENCES t_destination(pk_destination)
);
-- Création de la table Réservation
CREATE TABLE t_reservation (
pk_reservation INT PRIMARY KEY AUTO_INCREMENT,
fk_client INT,
fk_vol INT,
fk_hotel INT,
date_debut DATE,
date_fin DATE,
CONSTRAINT fk_reservation_client FOREIGN KEY (fk_client) REFERENCES t_client(pk_client),
CONSTRAINT fk_reservation_vol FOREIGN KEY (fk_vol) REFERENCES t_vol(pk_vol),
CONSTRAINT fk_reservation_hotel FOREIGN KEY (fk_hotel) REFERENCES t_hotel(pk_hotel)
);
-- Création de la table Avis (optionnelle)
CREATE TABLE t_avis (
fk_client INT NOT NULL,
fk_hotel INT NOT NULL,
note INT NOT NULL,
commentaire TEXT,
PRIMARY KEY (fk_client, fk_hotel),
CONSTRAINT fk_avis_client FOREIGN KEY (fk_client) REFERENCES t_client(pk_client),
CONSTRAINT fk_avis_hotel FOREIGN KEY (fk_hotel) REFERENCES t_hotel(pk_hotel)
);
2. Les requêtes d’insertion
Les clients
Insérez les deux clients suivants avec la requête d’insertion qui commence par :
INSERT INTO t_client (nom, ... ) ...| Nom | Prénom | |
| Dupont | Jean | jean.dupont@email.com |
| Martins | Alice | alice.martin@email.com |
Pour les trois prochains clients, la requête d’insertion commence par :
INSERT INTO t_client VALUES (...) ;| Nom | Prénom | |
| Leroy | Marc | marc.leroy@email.com |
| Tell | Sophie | tell.sophie@gemail.com |
| Girard | Emilie | Emilie.girard@yahoo.fr |
Les destinations
| Destination | Pays |
| Paris | France |
| Rome | Italie |
| New York | Etats-Unis |
| Tokyo | Japon |
| Sydney | Autralie |
Les hôtels
| Hôtel | Destination | |
| Le Ritz | Paris | |
| Hôtel EDEN | Rome | |
| The Plaza | New York | |
| Imperial Hôtel | Paris | |
| Park Hyatt | Sydney | |
| Ibis | Tokyo | |
Les vols
| Compagnie | N° du vol | La destination |
| Air France | AF123 | Paris |
| Alitalia | AZ456 | New York |
| American Airlines | AA789 | Rome |
| Japan Airlines | JL101 | Tokyo |
| Qantas | QF198 | Sydney |
| Iberia | EI460 | Madrid |