Ajout des requêtes SQL pour les exercices 1 et 2, y compris la création des tables, l'insertion des données et les modifications du Makefile pour inclure TP3.

This commit is contained in:
2025-10-09 12:16:58 +02:00
parent 9fc0fad1ef
commit 59b0c0de5c
2 changed files with 147 additions and 1 deletions

View File

@@ -1,5 +1,77 @@
--- EXERCICE 1 ---
-- Suppression des tables si elles existent
DROP TABLE IF EXISTS Inscription;
DROP TABLE IF EXISTS Orateur;
DROP TABLE IF EXISTS Conference;
-- Création des tables
CREATE TABLE Conference (
IDConf INTEGER,
Titre VARCHAR(100) NOT NULL,
DateConf DATE,
Prix DECIMAL(6,2),
CONSTRAINT Conference_pk
PRIMARY KEY(IDConf)
);
CREATE TABLE Orateur (
IDOr INTEGER,
NomOrateur VARCHAR(100) NOT NULL,
CONSTRAINT Orateur_pk
PRIMARY KEY(IDOr)
);
CREATE TABLE Inscription (
IDIns INTEGER,
IDConf INTEGER,
IDOr INTEGER,
DateIns DATE,
CONSTRAINT Inscription_pk
PRIMARY KEY(IDIns),
CONSTRAINT Inscription_fk1
FOREIGN KEY (IDConf) REFERENCES Conference(IDConf),
CONSTRAINT Inscription_fk2
FOREIGN KEY (IDOr) REFERENCES Orateur(IDOr)
);
-- Insertion des conférences
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (1, 'Data Science Fundamentals', '2025-03-15', 150.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (2, 'Advanced Machine Learning', '2025-03-15', 200.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (3, 'Introduction to AI', '2025-04-10', 120.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (4, 'Big Data for Business', '2025-05-20', 180.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (5, 'Data Visualization Techniques', '2025-05-20', 130.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (6, 'Cloud Computing Basics', '2025-01-25', 100.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (7, 'Cybersecurity Essentials', '2025-02-14', 160.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (8, 'Neural Networks Deep Dive', '2025-03-15', 220.00);
INSERT INTO Conference(IDConf, Titre, DateConf, Prix) VALUES (9, 'Data Warehouses and Data Lakes', '2025-02-14', 150.00);
-- Insertion des orateurs
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (1, 'Jean Dupont');
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (2, 'Isabella Rihl');
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (3, 'Marc Twilight');
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (4, 'Houda Ben Ali');
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (5, 'Yann Lequn');
INSERT INTO Orateur(IDOr, NomOrateur) VALUES (6, 'Sophie Marchand');
-- Insertion des inscriptions
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (1, 1, 1, '2025-01-10');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (2, 2, 1, '2025-01-11');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (3, 3, 1, '2025-01-15');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (4, 4, 2, '2025-02-01');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (5, 5, 2, '2025-02-20');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (6, 6, 3, '2025-03-10');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (7, 7, 3, '2025-02-28');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (8, 8, 1, '2025-03-01');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (9, 1, 4, '2025-01-12');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (10, 2, 4, '2025-01-15');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (11, 3, 4, '2025-02-01');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (12, 1, 5, '2025-01-25');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (13, 5, 5, '2025-01-30');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (14, 4, 6, '2024-12-10');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (15, 5, 6, '2025-01-05');
INSERT INTO Inscription(IDIns, IDConf, IDOr, DateIns) VALUES (16, 1, 6, '2025-01-10');
-- Question 1.1
SELECT Titre, MIN(Prix) AS 'Prix Minimum' FROM Conference;
@@ -50,6 +122,74 @@ WHERE NOT EXISTS (
--- EXERCICE 2 ---
-- Suppression des tables si elles existent
DROP TABLE IF EXISTS Oeuvre;
DROP TABLE IF EXISTS Collection;
DROP TABLE IF EXISTS Musee;
-- Création des tables
CREATE TABLE Musee (
idm INTEGER,
nom VARCHAR(100) NOT NULL,
ville VARCHAR(100) NOT NULL,
CONSTRAINT Musee_pk
PRIMARY KEY(idm)
);
CREATE TABLE Collection (
idc INTEGER,
idm INTEGER NOT NULL,
nom VARCHAR(100) NOT NULL,
CONSTRAINT Collection_pk
PRIMARY KEY(idc),
CONSTRAINT Collection_fk
FOREIGN KEY (idm) REFERENCES Musee(idm)
);
CREATE TABLE Oeuvre (
ido INTEGER,
idc INTEGER NOT NULL,
titre VARCHAR(100) NOT NULL,
artiste VARCHAR(100) NOT NULL,
annee INTEGER,
prix_estime DECIMAL(12,2),
CONSTRAINT Oeuvre_pk
PRIMARY KEY(ido),
CONSTRAINT Oeuvre_fk
FOREIGN KEY (idc) REFERENCES Collection(idc)
);
-- Insertion des musées
INSERT INTO Musee(idm, nom, ville) VALUES (1, 'Louvre', 'Paris');
INSERT INTO Musee(idm, nom, ville) VALUES (2, 'Musée d''Orsay', 'Paris');
INSERT INTO Musee(idm, nom, ville) VALUES (3, 'Metropolitan Museum of Art', 'New York');
INSERT INTO Musee(idm, nom, ville) VALUES (4, 'Galerie nationale', 'Berlin');
-- Insertion des collections
INSERT INTO Collection(idc, idm, nom) VALUES (1, 1, 'Toile classique');
INSERT INTO Collection(idc, idm, nom) VALUES (2, 1, 'Sculpture');
INSERT INTO Collection(idc, idm, nom) VALUES (3, 2, 'Impressionnisme');
INSERT INTO Collection(idc, idm, nom) VALUES (4, 3, 'Art moderne');
INSERT INTO Collection(idc, idm, nom) VALUES (5, 4, 'Art contemporain');
INSERT INTO Collection(idc, idm, nom) VALUES (6, 2, 'Photographie');
-- Insertion des œuvres (ido, idc, titre, artiste, annee, prix_estime)
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (1, 1, 'Mona Lisa', 'Léonard de Vinci', 1503, 700000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (2, 1, 'La Vénus de Milo', 'Alexandros d''Antioche', -100, 20000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (3, 2, 'Le Penseur', 'Auguste Rodin', 1902, 15000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (4, 3, 'Impression, Soleil Levant', 'Claude Monet', 1872, 5000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (5, 3, 'La Nuit étoilée', 'Vincent van Gogh', 1889, 100000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (6, 4, 'Les Demoiselles d''Avignon', 'Pablo Picasso', 1907, 140000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (7, 4, 'Guernica', 'Pablo Picasso', 1937, 200000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (8, 5, 'Balloon Dog', 'Jeff Koons', 1994, 56000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (9, 5, 'Untitled', 'Banksy', 2005, 15000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (10, 6, 'Migrant Mother', 'Dorothea Lange', 1936, 800000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (11, 6, 'Moonrise, Hernandez, New Mexico', 'Ansel Adams', 1941, 600000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (12, 1, 'La Liberté guidant le peuple', 'Eugène Delacroix', 1830, 120000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (13, 3, 'Le Déjeuner sur l''herbe', 'Edouard Manet', 1863, 60000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (14, 4, 'Composition VIII', 'Wassily Kandinsky', 1923, 40000000.00);
INSERT INTO Oeuvre(ido, idc, titre, artiste, annee, prix_estime) VALUES (15, 5, 'For the Love of God', 'Damien Hirst', 2007, 100000000.00);
-- Question 2.1
SELECT COUNT(*) AS 'NombreMusees' FROM Musee;

View File

@@ -5,3 +5,9 @@ tp1:
tp2:
docker exec -i M2_SQL_COURSE mysql -u root TP -t < ./scripts/TP2.sql | tee logs/tp2.log
tp3:
docker exec -i M2_SQL_COURSE mysql -u root TP -t < ./scripts/TP3.sql | tee logs/tp3.log
project:
docker exec -i M2_SQL_COURSE mysql -u root TP -t < ./scripts/DANJOU_Arthur.sql | tee logs/project.log