mirror of
https://github.com/ArthurDanjou/ArtStudies.git
synced 2026-02-01 12:29:32 +01:00
Add MySQL setup and initial data scripts
- Created a Docker Compose file to set up a MySQL container named M2_SQL_COURSE with an empty password and a database named TP. - Added a Makefile with a target to execute a SQL script (TP1.sql) inside the MySQL container and log the output. - Implemented the TP1.sql script to create tables for Magasin and Localite, insert initial data, and perform several queries.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
4
M2/SQL/Makefile
Normal file
4
M2/SQL/Makefile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Makefile
|
||||||
|
|
||||||
|
tp1:
|
||||||
|
docker exec -i M2_SQL_COURSE mysql -u root TP -t < ./scripts/TP1.sql | tee logs/last-run.log
|
||||||
13
M2/SQL/docker-compose.yml
Normal file
13
M2/SQL/docker-compose.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
container_name: M2_SQL_COURSE
|
||||||
|
image: mysql:latest
|
||||||
|
environment:
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
|
||||||
|
MYSQL_DATABASE: TP
|
||||||
|
volumes:
|
||||||
|
- mysql_data:/var/lib/mysql
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mysql_data:
|
||||||
50
M2/SQL/scripts/TP1.sql
Normal file
50
M2/SQL/scripts/TP1.sql
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
DROP TABLE IF EXISTS Magasin;
|
||||||
|
DROP TABLE IF EXISTS Localite;
|
||||||
|
|
||||||
|
-- Q1.1
|
||||||
|
CREATE TABLE IF NOT EXISTS Magasin(
|
||||||
|
Id VARCHAR(3) PRIMARY KEY,
|
||||||
|
Enseigne VARCHAR(100) NOT NULL,
|
||||||
|
Ville VARCHAR(255) NOT NULL,
|
||||||
|
Chiffre INTEGER NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS Localite(
|
||||||
|
Ville VARCHAR(255) NOT NULL,
|
||||||
|
Population INTEGER NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO Localite (Ville, Population) VALUES
|
||||||
|
('Créteil', 92984),
|
||||||
|
('Pantin', 60597),
|
||||||
|
('Colombes', 87328);
|
||||||
|
|
||||||
|
INSERT INTO Magasin (Id, Enseigne, Ville, Chiffre) VALUES
|
||||||
|
('D10', 'Super Discount', 'Créteil', 2800000),
|
||||||
|
('I10', 'Inter Prix', 'Créteil', 1230000),
|
||||||
|
('T01', 'Leader Trade', 'Créteil', 830000),
|
||||||
|
('M01', 'Discount Market', 'Créteil', 1010000),
|
||||||
|
('T08', 'Leader Trade', 'Pantin', 3230000),
|
||||||
|
('D20', 'Super Discount', 'Pantin', 556000),
|
||||||
|
('D22', 'Super Discount', 'Colombes', 4032000),
|
||||||
|
('T05', 'Leader Trade', 'Colombes', 2780000),
|
||||||
|
('I17', 'Inter Prix', 'Colombes', 3912000),
|
||||||
|
('M87', 'Discount Market', 'Colombes', 1471000),
|
||||||
|
('M89', 'Discount Market', 'Colombes', 845000);
|
||||||
|
|
||||||
|
SELECT * FROM Magasin;
|
||||||
|
SELECT * FROM Localite;
|
||||||
|
|
||||||
|
-- Q1.2
|
||||||
|
SELECT Ville, COUNT(*) AS NombreMagasins
|
||||||
|
FROM Magasin
|
||||||
|
GROUP BY Ville
|
||||||
|
ORDER BY Ville ASC;
|
||||||
|
|
||||||
|
-- Q1.3
|
||||||
|
SELECT Ville, Enseigne, COUNT(*) as NombreMagasins
|
||||||
|
FROM Magasin
|
||||||
|
GROUP BY Ville, Enseigne
|
||||||
|
HAVING NombreMagasins >= 2;
|
||||||
|
|
||||||
|
-- Q1.4
|
||||||
Reference in New Issue
Block a user