Académique Documents
Professionnel Documents
Culture Documents
FROM communes;
SELECT *
FROM departements;
-- projection
SELECT nom,
pop
FROM communes;/* opérateurs union, intersection,différence
(les tables doivent avoir la meme structure) */
SELECT nom
FROM departements
INTERSECT
SELECT nom
FROM regions;
SELECT nom
FROM departements
UNION
SELECT nom
FROM regions;
SELECT nom
FROM departements
EXCEPT
SELECT nom
FROM regions;
-- produit cartésien
SELECT *
FROM departements,
regions;
-- jointures
SELECT count( * )
FROM communes;
SELECT min(pop)
FROM communes;
SELECT dep,
min(pop)
FROM communes
GROUP BY dep;
SELECT dep,
max(pop)
FROM communes
GROUP BY dep;
SELECT dep,
avg(pop)
FROM communes
GROUP BY dep;
SELECT sum(pop)
FROM communes;
SELECT dep,
sum(pop) AS population
FROM communes
GROUP BY dep
ORDER BY population DESC;
SELECT dep,
count( * ) AS [nb communes de plus de 10000 habitants]
FROM communes
WHERE pop > 10000
GROUP BY dep;
-- La sélection sur des attributs agrégés ne peut se faire avec where mais avec
having (pourquoi????) la clause having est hors programme
SELECT dep,
d.nom,
sum(pop) AS p
FROM communes
JOIN
departements d ON dep = d.id
GROUP BY dep
HAVING p > 1000000
ORDER BY p DESC;
/* Le complémentaire
Départements dans lesquels il existe au moins
une commune de moins de 25 habitants */
SELECT d.nom
FROM departements AS d
JOIN
communes c ON d.id = dep
WHERE c.pop <= 25
GROUP BY dep;
SELECT d.nom
FROM departements AS d
EXCEPT
SELECT d.nom
FROM departements AS d
JOIN
communes c ON d.id = dep
WHERE c.pop <= 25
GROUP BY dep;