Cours phpMyAdmin et MySQL
![Cours phpMyAdmin et MySQL](/images/remos_downloads/coursinformatique-id3315.3315.pdf_thumb_prev.jpg)
Cours phpMyAdmin et MySQL
L'interface phpMyAdmin est accessible via un navigateur internet. Elle est optimisée pour Mozilla FireFox ou Internet Explorer, mais fonctionnera probablement avec la plupart des navigateurs internet.
Vous pouvez, indifféremment, vous connecter àl'interface phpMyAdmin de votre ordinateur (s'il est configuré comme un serveur) ou d'un ordinateur distant (serveur de réseau local ou serveur web). Les serveurs fournissant le service phpMyAdmin exécutent localement le gestionnaire de base de données MySQL, un logiciel de gestion de serveur (par exemple apache), puis phpMyAdmin. Une combinaison de ces logiciels est fournie dans certains paquets logiciels comme easyPhp (Windows) et Xampp (plusieurs plateformes) afin de configurer un ordinateur personnel comme un serveur.
Pour accéder àun interface phpMyAdmin, il faut accéder àl'adresse internet désignée dans un navigateur internet (il faut parfois utiliser un mot de passe). Consulter l'aide du paquet logiciel utilisé pour obtenir cette adresse.
Page d'accueil
L'interface de phpMyAdmin est divisée en 2 sections : la bande de sélection, àgauche et la page centrale, à droite. La bande de sélection, à gauche, sert à sélectionner une base de données, une table dans une base, ou àrevenir àla page d'accueil de phpMyAdmin. La page centrale sert interagir sur le système en visualiser l'état.
Dans la bande de sélection, àgauche, on trouve 4 icônes importants :
- L'icône de maison sert àrevenir àla page d'accueil de phpMyAdmin. C'est sur cette page que l'on peut faire des actions sur le système en entier (créer une nouvelle base, administrer les usagers, changer la configuration générale du système, etc.)
- L'icône « SQL dans une boite » (deuxième) sert à obtenir une fenêtre où l'on peut entrer directement des commandes en langage SQL. C'est donc l'équivalent de travailler en ligne de commande
- L'icône « ? dans une bulle » (troisième) est un lien vers la documentation de phpMyAdmin
- L'icône « SQL dans une bulle » (quatrième) est un lien vers la documentation de MySQL
Servezvous des ces liens abondamment: ils répondront àla plupart de vos questions.
L'illustration 1 est une capture d'écran de la page d'accueil de phpMyAdmin (sur la page suivante) :
Illustration 1: Page d'accueil de phpMyAdmin
Dans l'illustration 1, on remarque à gauche la liste des base de données existantes. Pour travailler sur une de ces bases, il faut simplement cliquer sur son nom. Dans la page centrale (à droite), on observe que phpMyAdmin utilise le principe d'onglets. Chacun de ces onglets permet d'accéder àdes opérations différentes. Nous n'illustrons pas dans ce document toutes les actions possibles; seulement les notions de base seront présentées.
Créer une base de données
Lorsque sur la page d'accueil (n'oubliez pas, pour accéder àla page d'accueil, cliquez sur l'icône de
« maison » en haut dans la section à gauche), si vous avez les droits nécessaires, vous pouvez créer une nouvelle base de données.
Il suffit d'entrer le nom et de cliquer sur « create » ou « créer » (au milieu de l'Illustration 1).
Remarquer que vous pouvez aussi choisir une option appelée « interclassement ». Les interclassements ou « jeux de caractères » (appelés « collation » en anglais) sont des conventions pour la reconnaissance et l'affichage des caractères. En effet, il existe de nombreuses variantes selon les langues utilisées. Si vous prévoyez utiliser des accents dans un champ particulier, il est conseillé d'utiliser l'interclassement « utf8_general_ci ». Sinon, vous pouvez conserver l'interclassement fourni par défaut.
L'illustration 2 montre le résultat de la création d'une base nommée « exemple ».
Illustration 2: Base créée et insertion de table
Après la création d'une base de données, elle est automatiquement sélectionnée comme base de donnée de travail – cela peut être observé dans la barre de gauche. Le code SQL pour la création de la base apparaît àla suite du carré vert indiquant que la création a été réalisée avec succès. Comme il n'y a pas de table dans la base, on nous demande immédiatement de créer une table. Nous avons entré les champs « etudiants » et « 3 » dans les cases « Name » (nom) et « Number of fields » (nombre de champs). En appuyant sur le bouton « Go » (« Exécuter »), on arrive àune page où l'on doit préciser quels seront les champs constituant la nouvelle table.
La page de description des nouveaux champs est montrée à l'illustration 3.
Ajouts de champs à une table
On peut rajouter des champs dans une table à sa création, ou par la suite, après la création de la table. On peut même rajouter des champs dans une table lorsqu'elle contient des tuples (appelés « rangées » ou « rows » avec MySQL). Lors de la création de champ, il faut préciser leur contenu.
Remplir les champs
Dans l'illustration 3, on remplit 3 champs de la nouvelle table « etudiants » de la base « exemple ». On choisi 3 champs « texte » de 12, 30 et 30 caractères, respectivement. Les champs « Nom » et
« Prénom » seront d'interclassement (collation) utf8_general_ci car ils doivent gérer les accents et autres caractères propres au français.
Illustration 3: Remplissage de champs
Le sélecteur « type » permet de sélectionner le type de données. Les types suivants seront particulièrement utiles: INT, VARCHAR (chaine de caractères), TEXT, DATE, DECIMAL, BOOL, BLOB (fichiers), ENUM, etc. Pour les chaines de caractères (VARCHAR), il faut choisir la taille dans « length/values ». Pour chaque champ, on peut donner une valeur par défaut, choisir l'interclassement (collation), choisir des attributs spéciaux (par exemple « on_update_current_TIMESTAMP » permet de mettre a jour un champ de type DATE lorsqu'un tuple est mis-à-jour), indiquer si le champ peut être « Null », si la valeur doit être auto-incrémentée (« AUTO-INCREMENT » ou « A_I » : ceci est utile pour produire un numéro d'identification (ID) unique à chaque nouvelle insertion). Les options MIME, Browser information et Transformation options sont pour les utilisateurs avancés. Lorsque les champs sont remplis, on poursuit la création avec le bouton « Go » en bas de la page.
Création des champs
L'illustration 4 montre la réussite de la création de la table « etudiants » et ses champs.
Illustration 4: Création d'une nouvelle table avec ses champs
Après la création d'une table, elle est automatiquement sélectionnée comme table de travail dans la base de donnée courante (tel qu'illustré par le fil d'ariane « localhost > exemple > etudiants »). La page affichée ici correspond à l'onglet « structure », soit le visionnement de tous les champs qui composent la table.
Les icônes suivants sont visibles pour chaque champ de la table :
Vous retrouverez ces icônes àdifférents endroits dans l'interface phpMyAdmin. Dans l'ordre, ils signifient :
- Liste : Afficher les valeurs (tuples, rangées) distinctes disponibles pour cet élément
- Crayon: modifier cet élément
- X : supprimer cet élément
- Clé: identifier cet élément comme clé primaire
- U : identifier cet élément comme clé unique
- Éclair: identifier cet élément comme index (utilisé pour identifier une clé étrangère)
Insérer des tuples dans une table
Pour insérer de nouveaux tuples (manuellement) dans une table, il faut utiliser l'onglet « insert ». Cette page produit un formulaire pour insérer des valeurs dans chaque champ d'un nouveau tuple (d'une nouvelle rangée « row »), pour la table présentement sélectionnée.
Dans l'illustration 5, on insère 2 nouveaux tuples dans la table « etudiants » de la base « exemple » :
Illustration S: Insertion de deux tuples dans une table
La colonne « Function » permet de réaliser une transformation lors de l'insertion d'un tuple; elle ne vous sera pas utile.
La création des tuples est réalisée lorsque l'on appuie sur le bouton « Go » (« Exécuter »). Notez que les champs pouvant être « null » peuvent être laissés vide. Les champs d'identification qui ont été sélectionnés « AUTO_INCREMENT » peuvent aussi être laissés vide: le système se charge alors de leur donner un numéro unique.
Afficher les tuples
On peut afficher les tuples contenus dans la table sélectionnée en utilisant l'onglet « Browse » (« Afficher ») dans la page centrale.
Illustration 6: Affichage de tuples
Les icônes « crayon » et « X » peuvent être utilisés sur les tuples pour les modifier ou les supprimer. On peut sélectionner plus d'un tuple avec la première colonne (cocher) et choisir « crayon » ou « X » (juste en dessous de la liste des tuples) pour modifier ou supprimer plusieurs tuples àla fois.
Pour changer de table, cliquez sur la table voulue dans le menu de gauche (dans l'illustration 6, il n'y a qu'une seule table disponible). Pour retourner àla page d'accueil de phpMyAdmin, utiliser l'icône « maison » (à gauche également).
Structure : Modifier des tables
La modification d'une table se produit sous l'onglet « Structure » de la page centrale, avec la table sélectionnée.
Les différents champs de la table peuvent être modifiés ou supprimés avec les icônes correspondants. Il est aussi possible d'insérer de nouveau champ dans la table.
Créer des champs dans une table
La création de nouveau champ se produit avec la ligne entre deux « barres » juste à la fin de la page de l'onglet « Structure ». Il faut y entrer le nombre de nouveaux champs, où ils seront situés (au début de la table, à la fin, ou après un autre champ) et cliquer sur « Go ». L'illustration 7 en fourni une démonstration :
Illustration 7: Onglet structure, ajout d'un champ à la fin de la table
Lors de l'ajout d'un nouveau champ ou de sa modification, la page de remplissage de champ est affichée et l'on peut choisir les caractéristiques du champ.
Remplir le nouveau champ
Le nouveau champ doit être rempli de la même façon que lorsqu'on a inséré des champs dans une nouvelle table. L'illustration 8 montre l'insertion d'un champ « Sexe » constitué d'un seul caractère dont la valeur par défaut est « M ».
Illustration 8: Insertion d'un nouveau champ
Changement de structure obtenu
L'illustration 8 montre le résultat de l'ajout du champ « Sexe » dans la table « etudiant » de la base de données « exemple » :
Illustration 9: Changement de structure réussi
Sélectionner une table
Lorsqu'une base de données contient plusieurs table, il faut utiliser le menu de gauche pour changer de table « active » (la table sur laquelle on travaille). Pour changer de table active, cliquez simplement sur son nom dans la liste de gauche
Illustration 10: Sélection de la table "cours"
Exporter
L'exportation est réalisée dans la page centrale sous l'onglet « Export » (« Exporter »).
Viendra le moment où vous voudrez « sauvegarder » votre base de données. La façon de le faire est d'exporter toutes les tables de votre base dans un script en format texte. Ce script contiendra toutes les commandes SQL nécessaires pour recréer votre base de données sur un autre système. (Ce fichier est un fichier en format texte que vous pouvez vousmême modifier).
Voici les étapes pour bien « exporter » votre base :
- Sélectionnez la base de données entière avant d'exporter (pas une table)
- Assurez vous que toutes les tables de votre base sont sélectionnées (vous pourriez exporter que certaines tables de votre base)
- Si vous n'êtes pas un utilisateur avancé, ne touchez pas aux options d'exportation
- Cochez l'option « Save as file » (« Transmettre ») et sélectionnez le type de compression si désiré
- Appuyez sur le bouton « Go » (« Exécuter »)
- Essayez d'importer le fichier script obtenu pour voir si l'exportation a bien fonctionné
Illustration 11: Exportation d'une base de donnée
Opérations
L'onglet « Operations » de la page centrale permet certaines opérations globales sur la base de donnée ou la table active.
Illustration 12: Onglet "Operations" de la page centrale
L'onglet « Opérations », pour une base de données sélectionnée (pas de table sélectionnée) permet entre autres de renommer la base de données ou en réaliser une copie.
Entrer des commandes SQL
L'usager peut utiliser le langage SQL pour exécuter des commandes, sans utiliser l'interface graphique. Pour ce faire, il peut utiliser l'icône « SQL dans une bulle » dans la barre de gauche ou l'onglet « SQL » dans la page centrale.
Requête SQL
Pour précéder àune requête, il suffit d'entrer le code dans la boîte de l'onglet « SQL ». Cliquez ensuite sur « Go » (« Exécuter ») pour l'exécuter.
L'illustration 13 montre comment formuler une requête permettant d'obtenir tous les tuples de la tables « etudiants » dont le champ « nom » commence par « Y » (le caractère % est une valeur passepartout : il peut être remplacé par n'importe quel(s) caractère(s) ou même aucun).
Illustration 13: Requête SQL : trouver les étudiants dont le nom commence par "Y"
Résultats de requête SOL
Voici le résultat de la requête décrite à l'illustration 13 :
Illustration 14: Résultat de requête SQL
Recherche
L'onglet « Search » (« Recherche ») propose un interface convivial pour la recherche dans une table. Pour chaque champ, on peut utiliser un opérateur (LIKE est utilisé pour les chaînes de caractères : il est indifférent àla casse – majuscule / minuscule).
L'illustration 15 montre la recherche de tous les tuples de la table « etudiants » dont le champ « Sexe » est « M ».
Illustration 15: Utilisation de l'onglet "Recherche"
Résultats de recherche
Les résultats de recherche réalisée par l'onglet « Search » (« Recherche ») ont le même format que le résultat de requête réalisé autrement (avec du code SQL par exemple).
Ici, on obtient la liste de tous les étudiants « Mâles » :
Illustration 16: Résultat de requête : champ sexe = "M"
Gérer les usagers du système
La gestion des usagers du système est réalisée sur l'onglet « Privileges », accessible depuis la page d'accueil de phpMyAdmin ou lorsqu'une base de données est sélectionnée.
L'icône « crayon » permet de modifier les privilèges globaux ou locaux (concernant une base de données uniquement) d'un usager.
Illustration 17: Onglet "Privileges" : gestion des usagers du système
Contraintes de clé étrangère
Des contraintes de clé étrangères peuvent être ajoutées au système afin d'utiliser des mécanismes de protection des données. Un champ lié avec un autre champ (identifié comme clé étrangère) ne pourra contenir une valeur qui est absente dans la table correspondante. L'identification de clé étrangère permet la modification automatique de tuples lorsque la clé étrangère est modifiée ou effacée.
Note importante : seul le moteur de stockage InnoDB permet de bien gérer les contraintes de clé étrangère avec MySQL. Assurez vous de choisir ce moteur de stockage lors de la création de vos tables (voir « Storage Engine » (« Moteur de stockage ») dans le bas de la page de création d'une table à l'illustration 3). Vous pouvez aussi changer de moteur de stockage en utilisant l'onglet « Operations », lorsque la table désirée est sélectionnée.
Gestion des relations
Pour accéder à la page de gestion des relations, utiliser le lien « Relation View » (« Gestion des relations »), juste en dessous de la liste des champs d'une table, dans l'onglet « Structure ».
Illustration 18: Accéder à la page de "Gestion des relations" par l'onglet "Structure"
Remplir les contraintes
Note importante : seule un champ marqué comme un « index » (voir icône « éclair » dans la section « Création des champs » de « Ajout de champs dans une table ») peut se voir accordé une relation vers une clé étrangère. La clé étrangère devra elle avoir été identifiée comme clé étrangère, clé unique ou index (icônes « clé », « U » ou « éclair »).
L'illustration 19 montre la création d'une contrainte de clé étrangère entre le champ « ID_OBJ » de la table « Objet » et le champ « ID » de la table « Objet » (dans la base de données « test »).
Illustration 19: Création d'une contrainte de clé étrangère
Important : N'utilisez pas la colonne « Internal Relations » (« Relations internes ») : ces liens ne sont pas durables.
Les éléments « ON DELETE » et « ON UPDATE » indiquent au système quelle opération il doit réalisé lorsque la clé étrangère est supprimée ou modifiée. Les options suivantes sont disponibles :
- CASCADE : La même action est réalisée sur le tuple courant (si le tuple de la clé étrangère est effacé, le tuple pointant vers cette clé est aussi effacé. De même pour la modification)
- SET NULL : Met la valeur du champ à « Null »
- NO ACTION : Ne réalise aucune action. Attention : ceci peut créer des problèmes si ce n'est pas bien géré par la suite
- RESTRICT : Empêcher l'action (modification ou suppression) sur la clé étrangère.
Résultat
Dans l'illustration 20, la case avec le crochet vert indique la réussite du rajout d'une contrainte de clé étrangère. Le code SQL produit est indiqué à la suite.
Illustration 20: Ajout de contrainte de clé étrangère réussie