Vous êtes sur la page 1sur 5

Gestion de bases de données avec SQL

 Bases de données

Une base de données est un ensemble de données structurées. Dans les faits, il s’agit d’un ensemble de tables, chaque
table étant un tableau de données composé de lignes et colonnes. Les bases de données contiennent souvent des milliers
de données, parfois des millions de données, voire plus. Elles sont souvent accessibles à tous. On en trouve de très
intéressantes sur le site data.gouv, des données qui sont exploitées quotidiennement par le fameux site covid tracker qui
réalise une analyse très visuelle de ces données pour comprendre l’évolution complexe de l’épidémie.

1 Exemple simple

Prenons un exemple (un peu simplifié) pour lancer notre étude : les élèves du lycée Tici.

On considère pour cela un ensemble de 3 tables : Tici_sec, Tici_sup, Tici_pro. La table Tici_sup sera constituée de données
ayant six champs : Id, nom, prenom, classe, regime et age où Id est le numéro d’identification de l’étudiant de type TEXT,
nom, prenom, classe et regime étant de type TEXT et où age est l’age (le jour du 1 janvier de l’année scolaire) de type
INTEGER. On attribue souvent le titre de PRIMARY KEY à un champ qui identifie clairement une donnée. Cela ne peut pas
être le cas du nom, plusieurs étudiants pouvant porter le même nom. Ici, ce sera évidemment le champ Id qui tiendra ce
rôle. Dans la première colonne du tableau, on aura donc le numéro d’identification, dans la deuxième le nom, etc ...

2 Les attendus en ECG2

Le but du programme de ECG2, en ce qui concerne les bases de données, est d’en comprendre le principe, de savoir
grossièrement comment on les crée, comment insérer des nouvelles données, comment en supprimer certaines,
comment mettre à jour une table. On s’intéressera surtout à la manière dont on peut interroger ces bases pour en
extraire des informations importantes pour une activité particulière. Par exemple, dans la base de données précédentes,
on aimerait pouvoir identifier tous les étudiants du supérieur qui sont internes, ou encore, tous les élèves de première 2,
ou encore tous les élèves du lycée professionnel ayant 17 ans ou plus... Pour cela on utilise un logiciel de type SGBD
(système de gestion de bases de données). Deux parties non négligeables de la gestion des bases de données sont
écartées de notre programme : le contrôle des données et la gestion des droits, d’une part, et les transactions entre les
bases de données d’autre part.
1.2 Le langage SQL

C’est un langage très répandu pour la gestion des bases de données. Il utilise des données de différents types. Nous nous
contenterons du type entier (« INTEGER ») et du type texte « TEXT ». SQL peut utiliser bien d’autres types (les chaînes de
caractères d’une longueur fixée, les booléens, les dates, ...). Pour mettre en œuvre SQL, il nous faut un environnement
dans lequel nous pourrons utiliser les commandes SQL et voir les résultats de ces actions, c’est à dire un SGBD basé sur le
langage SQL. Il y a plusieurs possibilités et cela peut évoluer assez vite.

• On peut utiliser une plateforme qui gère une interface graphique très confortable pour voir les bases de données et nos
actions : XAMPP (sous windows, Os X ou linux) qui utilise PHPMyAdmin.

• On peut citer aussi la plateforme MySQL.

• On peut utiliser le module très puissant sqlite3 qui permet d’utiliser SQLITE au sein de Python : c’est bien mais cela
oblige à connaître quelques instructions Python supplémentaires pour faire le lien entre Python et SQL. On y accède en
faisant import sqlite3.

• On peut aussi utiliser sqlite3 avec une interface graphique assez commode avec le programme Python DB Browser pour
Sqlite. C’est sans doute la solution la plus simple. Voir le site https://sqlitebrowser.org/. L’exemple de visualisation
graphique suivant est donné

1.3 Les instructions de base de SQL

a) Création d’une table La plupart du temps, nous récupérons des bases de données déjà établies. Il suffit alors de les
importer (ou simplement charger) dans notre environnement de travail. Il est possible que l’on ait à créer nos propres
tables. Dans ce cas on utilise l’instruction SQL : « CREATE TABLE nom_de_table » Pour l’exemple déjà cité :

On recommence de même pour les deux autres tables Tici_sup et Tici_pro. Pour remplir chacune des tables, on peut
utiliser l’instruction SQL : « INSERT INTO nom_de_table » Pour l’exemple, cela donnerait :

De même pour les deux autres tables.


b) Supprimer une ligne de données dans une table

On utilise l’instruction « DELETE FROM nom_de_table » Pour notre exemple, on pourrait demander :

Si on veut remettre cette ligne en place après son effacement, on peut redemander :

c) Modifier et mettre à jour des données dans une table

On utilise l’instruction « UPDATE nom_de _table » Par exemple, dans notre table Tici_sup, on peut demander

Cela a pour effet de donner la table modifiée suivante :

Si on veut remettre la table dans son état initial, on peut utiliser une mise à jour inversée (ce qui est assez facile ici)

d) Sélectionner des champs dans une table

On utilise l’instruction « SELECT nom_de_champ FROM nom_de _table » Quelques exemples à partir de la table Tici_sec :

Sélectionne tous les champs de la table. Cela revient à visionner toute la table.

Sélectionne juste le champ Id. Cela donne :

e) Sélectionner des données dans une table suivant des critères

Quelques exemples, toujours à partir de la table Tici_sec :


Cela donne :

Sélectionne les élèves de la classe 1_2 qui sont demi-pensionnaires. Cela donne :

Sélectionne les élèves de plus de 18 ans. Cela donne :

Pour donner les critères, on peut utiliser :

• les opérateurs de comparaison : =,<>,<,<=,>,>=

• les opérateurs logiques : « AND », « OR », « NOT »

• Les fonctions non exigibles : « MIN », « MAX », « SUM », « AVG »(la moyenne), « COUNT »(pour compter).

• Les commandes non exigibles : « DISTINCT », « ORDER BY ».

f) Créer de nouvelles tables par opérations ensemblistes

Commençons par une instruction assez naturelle dans le contexte de notre exemple : « UNION » (ce n’est pas une
instruction exigible).

Cela a évidemment pour effet de créer une quatrième table dans notre base de données :

On rencontrera éventuellement les deux autres opérateurs ensemblistes (non exigibles) « INTERSECTION », « EXCEPT ».
1.4 Sélectionner des données dans plusieurs tables avec SQL

C’est l’intérêt majeur du travail sur une base de données comportant plusieurs tables. On aura donc assez souvent
recours à ces instructions qu’il faudra bien maîtriser. L’instruction générale à connaître est la suivante, si Φ est une
condition : « SELECT * FROM nom_de_table_1 INNER JOIN nom_de_table_2 ON Φ » Cela donne, avec plus de détails,
l’utilisation classique suivante

ou encore, avec trois tables :

Prenons un exemple avec les élèves du lycée Tici. Commençons par créer une cinquième table dans notre base de
données, rassemblant les adresses mail des élèves du lycée.

Puis

Cela a pour effet de créer la table Tici_mail suivante :

Effectuons maintenant la requête suivante :

Nous obtenons :

Vous aimerez peut-être aussi