Sources d’inspiration
I Cours de B. Habert (ENS Lyon)I Cours de G. Lejeune (SU)I https://openclassrooms.com/fr/courses/
1959476-administrez-vos-bases-de-donnees-avec-mysql/1961564-selectionnez-des-donnees
I https://fr.wikipedia.org/wiki/Structured_Query_Language
I http://www.i3s.unice.fr/~edemaria/cours/c4.pdf
2 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BD
Pour finir
3 / 38
Création d’une BD "Tour de France"Créer et peupler une BDQuelques erreurs à éviter
SQL
Interroger une BD
Pour finir
4 / 38
Création d’une BD "Tour de France"Créer et peupler une BDQuelques erreurs à éviter
SQL
Interroger une BD
Pour finir
5 / 38
Comparaison de deux BDAmélie vs Alice : Alice prend "plus large" (au cas où)
vs
6 / 38
Peupler une BD (R. Idir)
7 / 38
Création d’une BD "Tour de France"Créer et peupler une BDQuelques erreurs à éviter
SQL
Interroger une BD
Pour finir
8 / 38
Avertissement
I les étudiant·e·s qui ont créé leur BD ont travaillé (ce n’est pasle cas de tout le monde)
I je remonte ici les erreurs les plus courantes, qui ont été faitespar beaucoup (donc peut-être vous, même si je ne montre pasvotre BD ici)
I il est important de faire des erreurs pour s’améliorerI je n’avais pas prévenu que j’allais utiliser vos BD pour le cours
(désolée), donc certain·e·s ont sans doute fait ça un peu vite
→ il n’y a aucune honte à être cité·e ici, au contraire
9 / 38
Manque d’informationsIci, NomEquipe, NomPays, Villes de l’étape, etc.
10 / 38
Mauvais typageIci, Date devrait être une date et NbKm un décimal
11 / 38
Lien inexistant (pas de clé étrangère)Ici, CodePays n’est pas une clé étrangère pour Coureur (alors que CodeEquipe l’est)
12 / 38
Création d’une BD "Tour de France"
SQLUn peu d’histoireUn langage particulièrement efficace
Interroger une BD
Pour finir
13 / 38
Création d’une BD "Tour de France"
SQLUn peu d’histoireUn langage particulièrement efficace
Interroger une BD
Pour finir
14 / 38
SQL : Structured Query Languageen français : langage de requête structurée
I créé en 1974I normalisé depuis 1986
→ langage reconnu par la grande majorité des SGBDR du marché
15 / 38
Création d’une BD "Tour de France"
SQLUn peu d’histoireUn langage particulièrement efficace
Interroger une BD
Pour finir
16 / 38
Un langage orienté résultats
→ langages de programmation traditionnels (Fortran, Pascal, C,C++, Java) sont procéduraux : indiquent donc au processeur cequ’il doit faire, et dans quel ordre
vs
→ SQL est déclaratif : n’explique pas comment les traitementsdoivent être menés, mais quel doit en être le résultat
17 / 38
À quoi sert SQL ?
Langage de :I définition de données : create, drop, alterI manipulation de données : select, insert, update, deleteI contrôle de données : grant, revokeI contrôle des transactions : commit, rollback
18 / 38
"Parler" SQL
Instructions SQL = phrases ordinaires en anglais
Exemple : afficher le nom des coureursSELECT NomCoureurFROM Coureur ;
19 / 38
SQL dans phpMyAdminOnglet SQL : écrire la requête dans la fenêtre, puis cliquer sur Exécuter
SELECT NomCoureurFROM Coureur
20 / 38
SQL dans phpMyAdmin : résultatLes noms des coureurs dans la table Coureur
21 / 38
SQL dans phpMyAdmin : l’étoile de Kleenetout (*) ce qui est dans la table Coureur
SELECT *FROM Coureur
22 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BDSélectionner des caractéristiques : la projectionSélectionner un ensemble d’« individus » : la restrictionCombiner restriction et projection
Pour finir
23 / 38
BD exemple (R. Idir)
24 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BDSélectionner des caractéristiques : la projectionSélectionner un ensemble d’« individus » : la restrictionCombiner restriction et projection
Pour finir
25 / 38
Projeter : un sous-ensemble d’attributs
I Sélectionner un sous-ensemble des attributs de la table-source
26 / 38
Projection : exempleTous les codes équipes dans la table Coureur
SELECT CodeEquipeFROM Coureur
27 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BDSélectionner des caractéristiques : la projectionSélectionner un ensemble d’« individus » : la restrictionCombiner restriction et projection
Pour finir
28 / 38
Restreindre : un ensemble de lignes
Mot clé WHERE
I conserver uniquement les lignes de la table qui présententcertaines caractéristiques
I tous les attributs (toutes les colonnes) demeurent
29 / 38
Restriction : exempleTous les coureurs d’origine espagnole
SELECT *FROM CoureurWHERE CodePays=2
30 / 38
Note : les opérateurs de comparaison
= égal< inférieur<= inférieur ou égal> supérieur>= supérieur ou égal<> ou != différent<=> égal (valable pour NULL aussi)
31 / 38
Restriction : exemple négatifTous les coureurs qui ne sont pas d’origine espagnole
SELECT *FROM CoureurWHERE CodePays <> 2
32 / 38
Note : les opérateurs logiques
AND etOR ouXOR ou exclusifNOT non
33 / 38
Restriction : exemple 2Tous les coureurs dont le CodeEquipe et le CodePays sont de 1
SELECT *FROM CoureurWHERE CodePays = 1 AND CodeEquipe = 1
34 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BDSélectionner des caractéristiques : la projectionSélectionner un ensemble d’« individus » : la restrictionCombiner restriction et projection
Pour finir
35 / 38
Restriction + projection
SELECT NomCoureurFROM CoureurWHERE CodeEquipe=1
36 / 38
Création d’une BD "Tour de France"
SQL
Interroger une BD
Pour finirCQFR : Ce Qu’il Faut Retenir
37 / 38
I maîtrise de : SELECT FROM WHEREI opérateurs de comparaisonI opérateurs logiquesI manipulations dans phpMyAdmin
38 / 38