Interrogation d’une base de données relationnelle.
Bases de données relationnellesÉpisode 2
Bases de données (2) : Requêtes
Introduction Une seule table
Colonnes Lignes
Deux tables Agrégation
Schéma relationnel
Bases de données : Requêtes
Introduction Une seule table
Colonnes Lignes
Deux tables Agrégation
SELECT FROM
INSEE DEP REG NOM boulangeries population
83122 83 93 Salles-sur-Verdon
4 245
52450 52 44 Saint-Loup-sur-Aujon
1 142
46127 46 27 Gourdon 6 4094
SELECT * FROM communes
Projection
INSEE DEP REG NOM boulangeries population
83122 83 93 Salles-sur-Verdon
4 245
52450 52 44 Saint-Loup-sur-Aujon
1 142
46127 46 27 Gourdon 6 4094
SELECT INSEE, NOM, population FROM communes
Projection
INSEE NOM population
83122 Salles-sur-Verdon
245
52450 Saint-Loup-sur-Aujon
142
46127 Gourdon 4094
SELECT INSEE, NOM, population FROM communes
Colonne calculée
INSEE NOM population Taux
83122 Salles-sur-Verdon
245
52450 Saint-Loup-sur-Aujon
142
46127 Gourdon 4094
SELECT INSEE, NOM, population, boulangeries/population AS TauxFROM communes
Colonne calculée
INSEE NOM population Taux
83122 Salles-sur-Verdon
245 0
52450 Saint-Loup-sur-Aujon
142 0
46127 Gourdon 4094 0
SELECT INSEE, NOM, population, boulangeries/population AS TauxFROM communes
Colonne calculée
INSEE NOM population Taux
83122 Salles-sur-Verdon
245 0.0163265306122449
52450 Saint-Loup-sur-Aujon
142 0.007042253521126761
46127 Gourdon 4094 0.0014655593551538837
SELECT INSEE, NOM, population, boulangeries*1.0/population AS TauxFROM communes
Colonne calculée
INSEE NOM habitants B10000
83122 Salles-sur-Verdon
245 163
52450 Saint-Loup-sur-Aujon
142 70
46127 Gourdon 4094 14
SELECT INSEE, NOM, population AS habitants,boulangeries*10000/population AS B10000
FROM communes
Bases de données : Requêtes
Introduction Une seule table
Colonnes Lignes
Deux tables Agrégation
SELECT FROM
INSEE DEP REG NOM boulangeries population
83122 83 93 Salles-sur-Verdon
4 245
52450 52 44 Saint-Loup-sur-Aujon
1 142
46127 46 27 Gourdon 6 4094
SELECT * FROM communes
Restriction
INSEE DEP REG NOM boulangeries population
83122 83 93 Salles-sur-Verdon
4 245
52450 52 44 Saint-Loup-sur-Aujon
1 142
46127 46 27 Gourdon 6 4094
SELECT * FROM communes WHERE boulangeries <=5
Restriction
INSEE DEP REG NOM boulangeries population
83122 83 93 Salles-sur-Verdon
4 245
52450 52 44 Saint-Loup-sur-Aujon
1 142
02441 02 32 Louâtre 0 195
SELECT * FROM communes WHERE boulangeries <=5
Restriction
INSEE DEP REG NOM boulangeries population
26124 26 84 Étoile-sur-Rhône
1 5478
35176 35 53 Guipry-Messac
4 6961
37156 37 24 Montlouis-sur-Loire
5 10666
SELECT * FROM communes WHERE boulangeries <=5 AND population > 4000
QCM
Quelle requête renvoie les noms des communes ayant moins d’habitants que de lettres dans leur nom ?
SELECT NOM FROM communes WHERE length(NOM) < population
SELECT INSEE FROM communes WHERE length(NOM) > population
SELECT NOM FROM communes WHERE population < length(NOM)
SELECT NOM FROM regions WHERE length(NOM) > population
Bases de données : Requêtes
Introduction Une seule table
Colonnes Lignes
Deux tables Agrégation
Schéma de la base de données
Jointure : produit cartésien
DEP REG CHEFLIEU NOM REG CHEFLIEU NOM
01 84 01053 Ain 01 97105 Guadeloupe
01 84 01053 Ain 02 97209 Martinique
01 84 01053 Ain 03 97302 Guyane
61 28 61001 Orne 28 76540 Normandie
61 28 61001 Orne 53 35238 Bretagne
SELECT * FROM departements CROSS JOIN regions
Jointure
DEP REG CHEFLIEU NOM REG CHEFLIEU NOM
01 84 01053 Ain 01 97105 Guadeloupe
01 84 01053 Ain 02 97209 Martinique
01 84 01053 Ain 03 97302 Guyane
61 28 61001 Orne 28 76540 Normandie
61 28 61001 Orne 53 35238 Bretagne
SELECT * FROM departements JOIN regions ON departements.REG = regions.REG
Jointure
DEP REG CHEFLIEU NOM REG CHEFLIEU NOM
61 28 61001 Orne 28 76540 Normandie
14 28 14118 Calvados 28 76540 Normandie
01 84 01053 Ain 84 69123 Auvergne-Rhône-Alpes
29 53 29232 Finistère 53 35238 Bretagne
SELECT * FROM departements JOIN regions ON departements.REG = regions.REG
Jointure
DEP REG CHEFLIEU NOM REG CHEFLIEU NOM
61 28 61001 Orne 28 76540 Normandie
14 28 14118 Calvados 28 76540 Normandie
01 84 01053 Ain 84 69123 Auvergne-Rhône-Alpes
29 53 29232 Finistère 53 35238 Bretagne
SELECT * FROM departements AS d JOIN regions AS r ON d.REG = r.REG
Jointure avec projection
DEP REG CHEFLIEU NOM REG CHEFLIEU NOM
61 28 61001 Orne 28 76540 Normandie
14 28 14118 Calvados 28 76540 Normandie
01 84 01053 Ain 84 69123 Auvergne-Rhône-Alpes
29 53 29232 Finistère 53 35238 Bretagne
SELECT DEP, d.REG, d.NOM AS NOM_DEP, r.NOM AS NOM_REGFROM departements AS d JOIN regions AS r ON d.REG = r.REG
Jointure avec projection
DEP REG NOM_DEP NOM_REG
61 28 Orne Normandie
14 28 Calvados Normandie
01 84 Ain Auvergne-Rhône-Alpes
29 53 Finistère Bretagne
SELECT DEP, d.REG, d.NOM AS NOM_DEP, r.NOM AS NOM_REGFROM departements AS d JOIN regions AS r ON d.REG = r.REG
Jointure, projection et restriction
DEP REG NOM_DEP NOM_REG
61 28 Orne Normandie
14 28 Calvados Normandie
01 84 Ain Auvergne-Rhône-Alpes
29 53 Finistère Bretagne
SELECT DEP, d.REG, d.NOM AS NOM_DEP, r.NOM AS NOM_REGFROM departements AS d JOIN regions AS r ON d.REG = r.REGWHERE r.NOM = 'Normandie'
Jointure, projection et restriction
DEP REG NOM_DEP NOM_REG
61 28 Orne Normandie
14 28 Calvados Normandie
27 28 Eure Normandie
50 28 Manche Normandie
76 28 Seine-Maritime
Normandie
SELECT DEP, d.REG, d.NOM AS NOM_DEP, r.NOM AS NOM_REGFROM departements AS d JOIN regions AS r ON d.REG = r.REGWHERE r.NOM = 'Normandie'
Jointure, projection et restriction
DEP REG NOM_DEP NOM_REG
61 28 Orne Normandie
14 28 Calvados Normandie
27 28 Eure Normandie
50 28 Manche Normandie
76 28 Seine-Maritime
Normandie
SELECT DEP, d.REG, d.NOM AS NOM_DEP, r.NOM AS NOM_REGFROM departements AS d JOIN regions AS r ON d.REG = r.REGWHERE r.NOM = 'Normandie'
Jointure, projection et restriction
DEP NOM_DEP
61 Orne
14 Calvados
27 Eure
50 Manche
76 Seine-Maritime
SELECT DEP, d.NOM AS NOM_DEPFROM departements AS d JOIN regions AS r ON d.REG = r.REGWHERE r.NOM = 'Normandie'
ORDER BY
DEP NOM_DEP
14 Calvados
27 Eure
50 Manche
61 Orne
76 Seine-Maritime
SELECT DEP, d.NOM AS NOM_DEPFROM departements AS d JOIN regions AS r ON d.REG = r.REGWHERE r.NOM = 'Normandie'ORDER BY DEP
QCM
Que renvoie la requête suivante ?
SELECT communes.NOM, departements.NOM FROM communes JOIN departements ON CHEFLIEU = INSEE;
Les noms des communes et de leur département.
Les noms des régions et de leurs chefs-lieux.
Les noms des départements et de leurs chefs-lieux.
Les noms des communes qui sont dans un département
Bases de données : Requêtes
Introduction Une seule table
Colonnes Lignes
Deux tables Agrégation
Schéma de la base de données
Agrégation
SELECT COUNT(*) FROM communes
COUNT(*)
34966
Agrégation
SELECT COUNT(*), SUM(population), AVG(boulangeries), MAX(boulangeries)FROM communes
COUNT(*) SUM(population) AVG(boulangeries) MAX(boulangeries)
34966 66523318 1.400960933478236 2079
Agrégation avec restriction
SELECT COUNT(*) FROM communes WHERE NOM = 'Saint-Loup'
COUNT(*)
9
Conclusion
Au revoir
Top Related