mirror of
https://github.com/ArthurDanjou/ArtStudies.git
synced 2026-01-20 20:22:23 +01:00
Correction des tables Employe et Departement : ajout de contraintes de clé primaire et étrangère, mise à jour des types de données, et ajout de nouvelles requêtes SQL pour améliorer la structure et les fonctionnalités.
This commit is contained in:
@@ -2,16 +2,21 @@ 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
|
||||
Population INTEGER NOT NULL,
|
||||
|
||||
CONSTRAINT Localite_PK PRIMARY KEY (Ville)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS Magasin(
|
||||
Id VARCHAR(3),
|
||||
Enseigne VARCHAR(100) NOT NULL,
|
||||
Ville VARCHAR(255) NOT NULL,
|
||||
Chiffre DECIMAL(10,2) NOT NULL,
|
||||
|
||||
CONSTRAINT Magasin_FK FOREIGN KEY (VILLE) REFERENCES Localite(Ville),
|
||||
CONSTRAINT Magasin_PK PRIMARY KEY (Id)
|
||||
);
|
||||
|
||||
INSERT INTO Localite (Ville, Population) VALUES
|
||||
@@ -36,36 +41,47 @@ SELECT * FROM Magasin;
|
||||
SELECT * FROM Localite;
|
||||
|
||||
-- Q1.2
|
||||
SELECT 'Q1.2';
|
||||
|
||||
SELECT Ville, COUNT(*) AS NombreMagasins
|
||||
FROM Magasin
|
||||
GROUP BY Ville
|
||||
ORDER BY Ville ASC;
|
||||
|
||||
-- Q1.3
|
||||
SELECT 'Q1.3';
|
||||
|
||||
SELECT Ville, Enseigne, COUNT(*) as NombreMagasins
|
||||
FROM Magasin
|
||||
GROUP BY Ville, Enseigne
|
||||
HAVING NombreMagasins >= 2;
|
||||
|
||||
-- Q1.4
|
||||
SELECT Enseigne, Ville, AVG(Chiffre) AS ChiffreMoyen
|
||||
SELECT 'Q1.4';
|
||||
|
||||
SELECT Enseigne, AVG(Chiffre) AS ChiffreMoyen
|
||||
FROM Magasin
|
||||
GROUP BY Enseigne, Ville;
|
||||
GROUP BY Enseigne;
|
||||
|
||||
-- Q1.5
|
||||
SELECT Enseigne, m.Ville, AVG(Chiffre) AS ChiffreMoyen
|
||||
FROM Magasin m
|
||||
JOIN Localite l ON m.Ville = l.Ville
|
||||
WHERE l.Population >= 80000
|
||||
GROUP BY Enseigne, m.Ville;
|
||||
SELECT 'Q1.5';
|
||||
|
||||
SELECT Enseigne, AVG(Chiffre) AS ChiffreMoyen
|
||||
FROM Magasin m, Localite l
|
||||
WHERE m.Ville = l.Ville AND l.Population >= 80000
|
||||
GROUP BY Enseigne;
|
||||
|
||||
-- Q1.6
|
||||
SELECT Enseigne, Ville, SUM(Chiffre) as ChiffreAffaire
|
||||
SELECT 'Q1.6';
|
||||
|
||||
SELECT Ville, SUM(Chiffre) as ChiffreAffaire
|
||||
FROM Magasin
|
||||
GROUP BY Ville, Enseigne;
|
||||
GROUP BY Ville;
|
||||
|
||||
-- Q1.7
|
||||
SELECT Enseigne, Ville, SUM(Chiffre) as ChiffreAffaire
|
||||
SELECT 'Q1.7';
|
||||
|
||||
SELECT Ville, SUM(Chiffre) as ChiffreAffaire
|
||||
FROM Magasin
|
||||
GROUP BY Ville, Enseigne
|
||||
HAVING ChiffreAffaire >= 1000000;
|
||||
WHERE Chiffre > 1000000
|
||||
GROUP BY Ville;
|
||||
Reference in New Issue
Block a user