SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à MySQL

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.


Après ce TP, vous saurez :
  • installer le logiciel MySQL
  • installer PHPMyAdmin pour administrer MySQL
  • créer une base de données avec PHPMyAdmin
  • créer des tables
  • créer une contrainte d'intégrité avec une clé étrangère
  • insérer des données
  • faire quelques requêtes en lecture
Durée : 2 heures
Matériel :
  • un serveur Web avec PHP sous Linux
Début de la boite de navigation du travail pratique
Initiation à MySQL
Image logo représentative de la faculté
T.P. no 4
Leçon : SPARQL Protocol and RDF Query Language

TP de niveau 15.

Précédent :Initiation à PHP
Suivant :Initiation à PHPUnit
En raison de limitations techniques, la typographie souhaitable du titre, « Travail pratique : Initiation à MySQL
SPARQL Protocol and RDF Query Language/Travail pratique/Initiation à MySQL
 », n'a pu être restituée correctement ci-dessus.


Pourquoi installer MySQL ?[modifier | modifier le wikicode]

Dans ce TP, nous allons installer MySQL dans notre serveur Web. Ce logiciel permet de créer des bases de données SQL. Cela nous sera utile pour comparer nos exemples de programmes entre SPARQL et SQL.

À savoir avant de commencer[modifier | modifier le wikicode]

Que fait MySQL ?[modifier | modifier le wikicode]

C'est un logiciel qui stocke des données d'autres applications Web ou non.

Les applications ont comme contrainte d’utiliser le langage SQL pour lire ou pour enregistrer des données en passant par le protocole de la base de données utilisée.


Que fait PHPmyAdmin ?[modifier | modifier le wikicode]

Il vous faut avoir fait le TP précédent pour avoir un serveur Web avec PHP.
MySQL n'a pas besoin d'un serveur web pour fonctionner mais nous allons utiliser le logiciel PHPmyAdmin pour l'administrer à distance.
PHPmyAdmin est une interface de gestion de MySQL écrit en PHP qui a donc besoin du serveur que nous avons installé.

Documentations[modifier | modifier le wikicode]

Cours sur SQL[modifier | modifier le wikicode]

Les cours sur SQL dans Wikiversité sont déjà bien avancés, lisez-les si vous en avez le temps. Les TP ne feront que survoler les concepts de base.

Le site officiel de PHP[modifier | modifier le wikicode]

Le site officiel de PHP est extrêmement bien fait. La documentation PHP/MySQL est accessible depuis l'URL : http://php.net

N'oubliez pas de consulter les commentaires utilisateurs, car de très nombreux commentaires donnent des conseils très utiles. La documentation complète de PHP est disponible en français à l’adresse : http://www.php.net/manual/fr/

Installation de MySQL[modifier | modifier le wikicode]

Nous commençons par installer les paquets :

  • mysql-server pour installer le serveur MySQL
  • php5-mysql pour les outils de communication entre PHP5 et MySQL
  • phpmyadmin pour l'outil d'administration à distance de MySQL

Suivre les instructions suivantes :
1. Taper ces commandes Sous Ubuntu

sudo apt-get install mysql-server php5-mysql phpmyadmin

Sous Fedora ou CentOS

yum install mysql-server php-mysql phpmyadmin

2. MySQL vous demandera le mot de passe de l’utilisateur root du serveur MySQL (à conserver).

3. PHPMyAdmin va vous demander :

  • « Où installer le serveur HTTP ? » Choisir Apache.
  • « Voulez-vous configurer PHPMyAdmin ? » Choisir Oui.
  • « Indiquez le mot de passe root du serveur MySQL. » Indiquer le mot de passe que vous avez indiqué pour MySQL.

Configuration du serveur[modifier | modifier le wikicode]

1. Configuration du mot de passe : Sous Ubuntu (à vérifier)

sudo mysql_secure_installation

Sous Fedora ou CentOS

sudo mysql_secure_installation

2. Activation du service : Sous Ubuntu(à retrouver)

Sous Fedora ou CentOS

sudo service mysqld start
sudo chkconfig mysqld on

4. Recharger la configuration sur service apache2 :

Sous Ubuntu

sudo service apache2 reload

Sous Fedora ou CentOS

sudo service httpd reload

5. Tester l’accès au service PhpMyadmin :

firefox http://localhost/phpmyadmin

PhpMyAdmin vous demande un login et un mot de passe :

  • root
  • votre mot de passe root mysql


Pour plus d'info pour Fedora ou CentOS : http://doc.fedora-fr.org/wiki/Installation_et_configuration_de_MySQL#Installation_et_configuration_de_MySQL

Exercice avec Docker : Créer une image Docker avec les TP précédents avec MariaDb, PHPMyAdmin avec sur la page Web par défaut un lien permettant d'ouvrir PHPMyAdmin sans mot de passe.

Ma première base de données[modifier | modifier le wikicode]

Pour nos futurs TP nous allons utiliser la base de données que nous allons fabriquer. Nous allons enregistrer des CVs dans notre base de données MySQL.

La base de données[modifier | modifier le wikicode]

Pour commencer, lisez l’introduction de la leçon sur SQL de Wikiversité.

À faire avant de poursuivre : : créer la base de données moncv avec l'interface PHPMyAdmin. Nous considérons que, dans les prochaines étapes, vous aurez sous les yeux l'interface d'administration de votre base de données moncv.

Les tables[modifier | modifier le wikicode]

Il nous faut 2 tables :

  • une table pour enregistrer la liste des CVs
  • une autre table pour enregistrer toutes les Experiences de tous les CVs


Nous n'utiliserons pour nos exemples que 4 types de données :

  • INT : nombre entier
  • VARCHAR : chaîne de caractères dont le nombre varie avec un maximum défini
  • DATE : une date (qui prend cette forme YYYY-MM-DD)
  • BOOLEAN : 0 (faux) ou 1 (vrai)

Nous utiliserons l'outil d'auto-incrémentation (AI) qui nous permettra d’auto-incrémenter les identifiants des objets dans la base de données.


Exercice : Créer avec PhpMyAdmin les deux tables suivantes.


Table 1 : CVs

Nom du champ Type Auto-incrémenté Taille/longueur
ID INT AI
nom VARCHAR 25
prenom VARCHAR 25
adresse VARCHAR 50
code_postal INT
ville VARCHAR 25
telephone VARCHAR 25

Table 2 : Experiences

Nom du champ Type Auto-incrémenté Taille/longueur
ID INT AI
ID_CV INT
date_debut DATE
date_fin DATE
poste VARCHAR 50
societe VARCHAR 25
description VARCHAR 200
mots_cles VARCHAR 100
poste_actuel BOOLEAN

Contrainte d'intégrité[modifier | modifier le wikicode]

La seule façon certaine de distinguer deux CVs est la comparaison de leur ID (identification data), car il peut exister deux CVs de la même personne.
Pour convoquer un enregistrement, ou un morceau d'enregistrement, on passera donc toujours par l'ID. Chaque enregistrement a généralement un ID que l’on nomme clé d'enregistrement.

La table Experiences, elle aussi, a une clé, mais elle utilise aussi la clé d'une autre table. On appelle cette autre clé « une clé étrangère ».

Une clé étrangère peut être contrôlée dans MySQL. Cela évite de créer des clés étrangères qui ne pointent sur aucun enregistrement et cela évite de supprimer des enregistrements dans d'autres tables car leurs clés sont encore utilisées.

Étape 1 : il faut faire du champ ID_CV un index, car un index optimise le traitement sur cette colonne et c’est indispensable pour en faire une clé étrangère.

  1. Cliquer sur le nom de la table "Experiences" dans la colonne de gauche. La structure de la table s'affiche.
  2. Cocher la ligne ID_CV
  3. Cliquer sur l’icône Index en bas du tableau de la structure (l'icône contient un éclair, passer le curseur de votre souris dessus pour afficher la signification des icônes).

Étape 2 : Indiquer qu'ID_CV contiendra une clé étrangère.

  1. Cliquer sur le nom de la table "Experiences" dans la colonne de gauche. La structure de la table s'affiche.
  2. Cliquer sur le lien Relation view
  3. Sur la ligne ID_CV dans la colonne "Foreign Key", sélectionner dans la liste moncv.CVs.ID
  4. Sauver.


Enregistrer des données[modifier | modifier le wikicode]

Nous allons insérer 2 CVs à la main à travers les formulaires de PhpMyAdmin.

Exercice: Insertion de deux CVs

  1. À gauche, dans votre arborescence, sélectionnez la table CVs.
  2. Vous devez voir la structure de votre table qui s'affiche sous la forme d'un tableau. Cliquez sur 'Insert' (insérer) dans le menu du haut.
  3. Par défaut, PHPMyAdmin vous affiche un formulaire d'insertion avec deux entrées.
    1. Laissez toujours le champ ID vide. Il se remplit automatiquement.
    2. Et remplissez les autres champs.
  4. Sauvegardez et notez les ID des CVs (normalement : 1 et 2).

Exercice: Insertion des expériences associées à nos 2 CVs.

  1. Ouvrir le formulaire pour insérer des données dans la table Experiences
  2. Remplir tous les champs, sauf ID
  3. ID_CV doit correspondre à un ID d'un CV existant dans la table CVs (PHPMyAdmin vous aide en vous proposant uniquement des ID CVs qui existent).
  4. Attention : le champ poste_actuel ne peut prendre qu'un chiffre : 1 ou 0.
  5. Sauvegarder.

Recommencer l'opération une ou deux fois.

La base de données SQL est maintenant configurée pour faire les TP suivants.

Exemples de requêtes[modifier | modifier le wikicode]

À faire avant les exercices :

  1. Créer la base de données moncv et insérer quelques CVs comme décrit dans le TP.
  2. Lire la partie du cours sur SQL dans Wikiversité : La requête la plus simple ?

Exercice 1 : Écrire la requête SQL qui récupère le numéro de téléphone du CV ayant l'ID = 2.

Exercice 2 : Écrire la requête SQL qui récupère toutes les adresses des personnes qui portent le prénom Michel.