Bases de données :
Scripts et vues
Karën Fort (repris d’Alice Millour)
[Link]@[Link]
1 / 27
Sources d’inspiration
I cours d’Alice Millour (2020)
I [Link]
I [Link]
administrez-vos-bases-de-donnees-avec-mysql/
1973943-vues
2 / 27
Ce que vous savez faire
I concevoir une base de données
I créer et peupler des tables
I faire des requêtes sur ces tables (afficher du contenu et faire
des calculs simples)
3 / 27
Ce que vous allez apprendre dans ce cours
I créer et supprimer une base de données
I exporter et importer une base de données grâce à des scripts
I créer des vues pour stocker le résultat de vos requêtes
4 / 27
Créer une base de données
Exporter et importer une base de données
Les vues
Pour finir
5 / 27
Administrer une base de données
Clauses pour l’administration des bases de données :
I créer une base de données : CREATE DATABASE nom_base
I supprimer une base de données : DROP DATABASE nom_base
I préciser la base de travail : USE nom_base (dans phpMyAdmin
c’est la base sélectionnée dans le panneau latéral)
6 / 27
Exercice dans phpMyAdmin
Créer une base de données
I Cliquer sur Nouvelle base de données,
I puis onglet SQL,
I et créer une base de données ayant pour nom :
BDD_L3_ENQUETE_VOTRE-NOM
7 / 27
Créer une base de données
Exporter et importer une base de données
Les vues
Pour finir
8 / 27
Exporter une base de données
On peut stocker dans un seul fichier l’ensemble des informations
contenues dans une base de données :
I les tables (colonnes, types etc.)
I les liens entre les tables (clés primaires, étrangères etc.)
I les données
9 / 27
Exercice dans phpMyAdmin
Exporter la base de données BDD_L3_Enquete
Sélectionnez la base BDD_L3_Enquete dans le volet gauche puis
rendez-vous à l’onglet Exporter :
10 / 27
Exercice dans phpMyAdmin
Exporter la base de données BDD_L3_Enquete
Gardez les options sélectionnées et cliquez sur Exécuter :
Sauvegardez le fichier BDD_L3_Enquete.sql
11 / 27
Exercice dans phpMyAdmin
Exporter la base de données BDD_L3_Enquete
Le fichier téléchargé est un fichier .sql
qui peut être ouvert avec n’importe quel éditeur de texte :
Ouvrez le fichier et constatez, pour chaque table :
I création de la table CREATE TABLE
I insertion des données INSERT INTO
I ajout des contraintes sur les clés, par exemple :
ALTER TABLE ’Diplomes’ADD PRIMARY KEY (’num_diplome’)
(fin de fichier)
12 / 27
Importer une base de données
Deux options pour créer les tables d’une base de données
et les peupler :
1. manuellement (ce que vous avez fait avec les bases du tour de
France)
2. automatiquement en important un fichier sql
13 / 27
Exercice dans phpMyAdmin
Importer une base de données
1. Sélectionner la base BDD_L3_ENQUETE_VOTRE-NOM et
l’onglet Importer
2. Choisir le fichier BDD_L3_Enquete.sql
3. Exécuter l’import
En cas de message d’erreur (Incorrect format parameter /
connexion réinitialisée), rafraîchir la page
14 / 27
Exercice dans phpMyAdmin
Importer une base de données
Vous devez voir :
La base et les données ont été importées dans votre base
personnelle !
15 / 27
Créer une base de données
Exporter et importer une base de données
Les vues
Pour finir
16 / 27
Enquête : correction en une requête
SELECT Et.num_et, nom, prenom FROM Etudiants AS Et
# JOIN des tables utiles pour la requête
LEFT JOIN Diplomes AS Dip ON Dip.num_et = Et.num_et
LEFT JOIN Inscriptions AS Insc ON Insc.num_et = Et.num_et
LEFT JOIN Emprunts AS Emp ON Emp.num_et = Et.num_et
# liste des contraintes sur chacune des tables
WHERE genre=’M’ AND date_d>’2012-01-01’
AND [Link] LIKE ’Sc%’
AND (prenom LIKE ’P%’ AND nom LIKE ’M%’ OR prenom LIKE
’M%’ AND nom LIKE ’P%’)
# sélection et exclusion des filières ayant ’Physique’ au programme
AND [Link] NOT IN
(SELECT filiere FROM Programme WHERE matiere=’Physique’)
AND titre=’Le Cid’
17 / 27
Enquête : correction en une requête
SELECT Et.num_et, nom, prenom FROM Etudiants AS Et
# JOIN des tables utiles pour la requête
LEFT JOIN Diplomes AS Dip ON Dip.num_et = Et.num_et
LEFT JOIN Inscriptions AS Insc ON Insc.num_et = Et.num_et
LEFT JOIN Emprunts AS Emp ON Emp.num_et = Et.num_et
# liste des contraintes sur chacune des tables
WHERE genre=’M’ AND date_d>’2012-01-01’
AND [Link] LIKE ’Sc%’
AND (prenom LIKE ’P%’ AND nom LIKE ’M%’ OR prenom LIKE
’M%’ AND nom LIKE ’P%’)
# sélection et exclusion des filières ayant ’Physique’ au programme
AND [Link] NOT IN
(SELECT filiere FROM Programme WHERE matiere=’Physique’)
AND titre=’Le Cid’
Rq : on doit préciser la table lorsque le champ est ambigu (ex : filiere est
présent dans les tables Inscriptions, Diplomes et Programme)
18 / 27
Enquête : correction en une requête
Une longue requête :
I difficile à « débugger »
I non modulaire : la requête doit être exécutée en entier, en une
fois, pour voir un résultat
19 / 27
Les vues
Une vue est une table où on stocke le résultat d’une requête SELECT
I créer une vue : CREATE VIEW ma_vue AS ma_requête
I consulter une vue : SELECT * FROM ma_vue
I supprimer une vue : DROP VIEW ma_vue
20 / 27
Les vues
Exemple : stocker la liste des étudiants de sexe masculin
Le résultat de la requête
SELECT num_et, nom, prenom FROM Etudiants WHERE genre=’M’
est stocké dans la vue Etud_M :
21 / 27
Utiliser les vues dans une requête
Voir TD de M. Duflot (enquête), exercice 2
On peut imbriquer les requêtes facilement grâce aux vues :
1. étudiants de sexe masculin :
CREATE VIEW Etud_M AS SELECT num_et, nom, prenom FROM Etudiants
WHERE genre=’M’
2. étudiants diplômés après janvier 2012 :
SELECT Et.num_et, nom, prenom
FROM Etudiants AS Et
LEFT JOIN Diplomes AS Dip ON Dip.num_et = Et.num_et
WHERE date_d>’2012-01-01’
3. étudiants de sexe masculin et diplômés après janvier 2012 :
SELECT Et.num_et, nom, prenom
FROM Etud_M AS Et
LEFT JOIN Diplomes AS Dip ON Dip.num_et = Et.num_et
WHERE date_d>’2012-01-01’
22 / 27
Utiliser les vues dans une requête
Voir TD de M. Duflot (enquête), exercice 2
Et ainsi de suite ...
1. étudiants de sexe masculin et diplômés après janvier 2012 :
CREATE VIEW Etud_M_2 AS SELECT Et.num_et, nom, prenom
FROM Etud_M AS Et
LEFT JOIN Diplomes AS Dip ON Dip.num_et = Et.num_et
WHERE date_d>’2012-01-01’
2. étudiants de sexe masculin et diplômés après janvier 2012 et
ne suivant pas de cours de physique
SELECT Et.num_et, nom, prenom
FROM Etud_M_2 AS Et
LEFT JOIN Inscriptions AS Insc ON Insc.num_et = Et.num_et
WHERE filiere NOT IN
(SELECT filiere FROM Programme WHERE matiere=’Physique’)
23 / 27
Créer une base de données
Exporter et importer une base de données
Les vues
Pour finir
CQFR : Ce Qu’il Faut Retenir
TD
24 / 27
I créer une base de données avec
CREATE DATABASE
I exporter / importer une base de
données
I structure des fichiers d’export /
import .sql
I maîtrise de CREATE VIEW et
imbrication des vues dans les
requêtes
25 / 27
Exercice : utiliser les vues dans une requête
Voir fin du cours
I stocker le résultat de la dernière requête dans une vue
Etud_M_3
I résoudre l’enquête en créant les vues nécessaires
dans votre base BDD_L3_ENQUETE_VOTRE-NOM
I observer les données contenues dans les vues successives
26 / 27
Exercice : créer une BD et la peupler par script
1. créer et peupler la BD Charades par le biais d’un script
2. l’importer dans PhpMyAdmin
27 / 27