Créer une base de données : PhpMyAdmin

 

PhpMyAdmin est véritablement le panneau d'administration standard d'une base de données. Il est utilisé pratiquement partout et même avec les hébergements ne proposant pas de CPanel.

C'est en réalité un ensemble de pages PHP (et en rien un programme) qui simplifient la tâche du programmeur en offrant une interface simple et efficace pour gérer les différentes bases de données du site.

C'est ce que nous allons apprendre à utiliser par la suite dans ce tutoriel.

 

Suivez le guide !

1er pas avec PhpMyAdmin

Reprenons ! Maintenant que nous avons terminé la création de notre 1ère base de données, revenons sur notre CPanel.

Vous devriez trouver, juste à côté des outils pour configurer les bases de données, l'onglet PhpMyAdmin :

Etape 1 création de la bases de donnée

Cliquons dessus pour accéder à notre panneau d'administration :

Bienvenue dans PhpMyAdmin !

Etape 1 création de la bases de donnée

Il y a beaucoup de choses à dire sur cette interface.

Commençons par la partie tout à gauche en bleu. Vous pouvez y trouver deux Bases de données :

  • information_schema (28)
  • livre_or

Vous pouvez reconnaître la base que nous venons de créer. Le petit numéro entre parenthèse signifie que l'on peut trouver 28 tables dans la base de données « information_schema ». Nous n'allons d'ailleurs jamais y toucher.

La petite maison en haut vous permettra de retourner sur cette page. Nous verrons plus tard à quoi sert l'icône de SQL. Le ? et le SQL tout à droite sont des manuels d'utilisation (en anglais) si vous êtes bloqué dans vos manipulations.

Le reste de la page nous donne une quantité d'informations sur le serveur web, la version de PhpMyAdmin ainsi que sur MySQL. Nous 'y toucherons pas non plus pour le moment.

Commencez par cliquer sur « livre_or » pour ouvrir la base de données :

Etape 1 création de la bases de donnée

Comme vous pouvez le constater (le petit message dans la partie gauche de l'interface), aucune table n'est disponible pour notre base c'est pourquoi nous allons en créer une sans plus attendre.

Notez que pour le moment, nous nous trouvons dans l'onglet « Structure » de la base de données.

Entrez dans le champ « Nom » le nom de la table que nous allons utiliser soit « livre » et entrez « 4 » pour le nombre de colonnes puis cliquez sur « exécuter ». Nous allons tout de suite voir pourquoi.

Etape 1 création de la bases de donnée

Vous devriez arriver sur cette interface :

Etape 1 création de la bases de donnée

Quelques explications s'imposent. Nous allons détailler cette interface en plusieurs points car c'est la clef d'une base de données.

Il est très important que vous compreniez quoi faire une fois que vous êtes ici.


Suivez le guide ! Les champs d'une table


Dans la 1ère colonne tout à gauche appelée simplement « Colonne », nous allons entrer les noms des différents champs de notre table.

Le 1er se nomme généralement ID pour « Identification Number ». Il permet d'obtenir avec certitude une entrée unique pour tous les éléments de la table. Si elle n'est pas créée, vous pourriez avoir des doublons dans votre base ce qui pourrait à terme provoquer des bugs et autres choses pas très sympa. Je vous conseille donc par défaut de toujours créer ce champ en premier (même si vous n'y êtes pas formellement obligé).

Les autres champs seront utilisés pour stocker ce que nous avons besoin, à savoir :

  • Le pseudo du visiteur qui poste le message
  • Le message en lui-même
  • et la date à laquelle il a été posté.

Nous entrons donc (sans majuscule ni accents) « pseudo », « message » et « date » dans les champs restant.

S'il vous manque des champs (vous voulez en utiliser plus que 4), regardez en bas à droite de l'image ci-dessus. Vous trouverez un champ : « Ajouter xxx colonne(s) EXECUTER ». Rentrez simplement la valeur du nombre de colonne que vous souhaitez ajouter plus cliquez sur « exécuter ». La page se rafraichira avec les nouveaux champs.

 

Suivez le guide ! Les types de données MySQL



La 2ème colonne nous donne les types de données possible pour chaque champ et il y en a beaucoup ! Voyez par vous-même :

Type 1 données  PhpMyAdminType 2 mySQLType3 MySQL

Il y a 4 grand types de donnée dans MySQL :

  • Les types Numériques : les nombres en somme
  • Les Dates et Heures
  • Les Textes et chaines de caractères
  • Les éléments spatiaux comme les formes de géométrie (utilisés pour la cartographie par exemple)

Nous utiliseront principalement que les 3 premiers types. Il est utile de savoir à quoi correspondent les valeurs proposées, voici donc leurs descriptions :

Les 4 premières valeurs de la liste ne sont que des raccourcis pour les 4 entrée les plus courantes :

  • « INT » est nom nombre entier
  • « VARCHAR » un texte cours de 0 à 65.535 caractères
  • « TEXT » pour du texte en grande quantité (livres, articles, news...)
  • « DATE » une date sous la forme (jour, mois, année)

 

Question

Par la suite, vous verrez souvent le mot « Byte ». Vous savez que dans un ordinateur, tout est représenté sous forme de 0 et de 1. Un 0 ou un 1 est appellé bit. Un Byte est simplement un ensemble de 8 bits qui est une unité de base très utilisée dans l'informatique.

Les différentes valeurs ci-dessous sont directement liées au nombre de Bytes disponibles. Plus on en a, plus on peut être précis (plus grand nombres, plus de caractères etc.)

 

Voici le descriptif des différentes entrées possibles :

NUMERIC : les nombres
  • « TINYINT » (stocké sur 1 Byte) :

    • nombre de -128 à 127
    • Si « unsigned » est activé : nombre de 0 à 255

  • « SMALLINT» (stocké sur 2 Bytes) :

    • nombre de -32768 à 32767
    • Si « unsigned » est activé : nombre de 0 à 65.535

  • « MEDIUM » (stocké sur 3 Bytes) :

    • nombre de -8.388.608 à 8.388.607
    • Si « unsigned » est activé : nombre de 0 à 16.777.215

  • « INT » (stocké sur 4 Bytes) :

    • nombre de -2.147.483.648 à 2.147.483.647
    • Si « unsigned » est activé : nombre de 0 à 4.294.967.295 (c'est 2^32 -1 car on commence à 0)

  • « BIGINT » (stocké sur 8 Bytes) :

    • nombre de -9.223.372.036.854.775.808 à 9.223.372.036.854.775.807
    • Si « unsigned » est activé : nombre de 0 à 18.446.744.073.709.551.615 (c'est gros n'est-ce pas ? Cette valeur est en fait 2^64-1)



  • « DECIMAL » (stocké sur 8 Bytes) Nombre à virgule dont la valeur est exacte.

  • « FLOAT » (stocké sur 4 Bytes) Nombre à virgule dont la valeur est approximative.

  • « DOUBLE » (stocké sur 8 Bytes) Nombre à virgule dont la valeur est approximative mais plus précise que FLOAT.

  • « REAL » se comporte comme un FLOAT.



  • « BIT » permet de stocker de 1 à 64 bits sans que MySQL ne les interprètes.

  • « BOOLEAN » permet de stocker des Vrai/Faux : 1 pour Vrai et 0 pour Faux.

  • « SERIAL » est l'équivalent d'un BIGINT, UNSIGNED, NOT NULL, AUTO_INCREMENT, UNIQUE.
DATE and TIME : les dates
  • « DATE » stocke une date au format « YYYY-MM-DD »

  • « DATETIME » stocke une date au format « YYYY-MM-DD HH:MM:SS »

  • « TIMESTAMP » se comporte comme un DATETIME mais cette fois-ci stocke le nombre de secondes écoulées depuis le 1er janvier 1970. La date résultante est aussi sous la forme « YYYY-MM-DD HH:MM:SS ».

  • « TIME » stocke une heure sous la forme « HH:MM:SS »

  • « YEAR » stocke une année sous la forme « YYYY »
STRING : les textes
  • « CHAR » stocke une chaine de caractères courte : de 0 à 255 caractères.
  • « VARCHAR » stocke une chaine de caractères moyenne : de 0 à 65.535 caractères.

    Notez que pour ces deux champs, vous devez indiquer le nombre de caractères que vous allez utiliser pour ce champs. Si vous ne savez pas quoi mettre, entrez simplement la valeur maximale. Mais dans un tel cas, il est plus judicieux d'utiliser un TINYTEXT.

    Pour tous les autres cas, laisser le champ « Taille/Valeurs » vide.

Taille  PhpMyAdmin

  • « TINYTEXT » stocke un texte de 0 à 255 caractères (jusqu'à 3 lignes de texte)
  • « TEXT » stocke un texte de 0 à 65.535 caractères (un bel article de journal bien détaillé)
  • « MEDIUMTEXT » stocke un texte de 0 à 16.777.215 caractères (c'est déjà un bon livre)
  • « LONGTEXT » stocke un texte de 0 à 4.294.967.295 caractères (là vous pouvez y mettre facilement une encyclopédie)


  • « BINARY » stocke une chaine de caractères courte : de 0 à 255 caractères sous forme de Bytes (s'utilise comme CHAR)
  • « VARBINARY » stocke une chaine de caractères moyenne : de 0 à 65.535 caractères sous forme de Bytes (s'utilise comme VARCHAR)


La manière dont sont traités BINARY et VARBINARY est la même que pour les BLOB ci-dessous.

Un BLOB est une chaine de caractères traités comme étant de simples Bytes. Il n'y a pas de jeu de caractères (la manière dont sont codées les lettres) et les comparaisons sont basiques. Un TEXT quant à lui est traité comme étant une suite de caractères avec un jeu spécifié (par exemple UTF-8 ou ISO 8859-1) avec des comparaisons complexes.

Blob et Text ne diffère donc que par la manière de stocker les informations :


  • « TINYBLOB » stocke un texte de 0 à 255 caractères
  • « MEDIUMBLOB » stocke un texte de 0 à 65.535 caractères.
  • « BLOB » stocke un texte de 0 à 16.777.215 caractères
  • « LONGBLOB » stocke un texte de 0 à 4.294.967.295 caractères

SPACIAL : les formes géométriques
  • « GEOMETRY » stocke une forme géométrique (cercle, carré et forme de base).

  • « POINT » stocke les coordonnées d'un point.

  • « LINESTRING » stocke les coordonnées de 2 points pour tracer la ligne qui les relie.

  • « POLYGON » stocke une forme géométrique complexe à partir de ses bords

  • « MULTIPOINT » stocke les coordonnées de plusieurs points.

  • « MULTILINESTRING » stocke des paires de points pour représenter les différentes lignes à tracer.

  • « MULTIPOLYGON » stocke un ensemble de POLYGON qui s'assemblent pour créer des formes très complexes.

  • « GEOMETRYCOLLECTION » Permet de stocker un ensemble de formes géométriques composées des éléments ci-dessus.


Voilà qui en fait beaucoup ! Ce n'est vraiment pas grave si vous n'arrivez pas à tout retenir. Il faut un peu de pratique pour tout connaître par coeur ! Vous verrez que connaître un seul élément d'un type vous permettra de deviner facilement tous les autres.

Si vous avez un doute, n'hésitez pas à revenir vérifier la valeur sur ce tableau.

Suivez le guide ! Autres points important de la création d'une table

Nous avons fait le plus gros ! Il ne nous reste que quelques détails à voir.

Dans la 4ème colonne, vous trouverez la valeur par défaut à assigner au champ si rien n'est spécifié.

Par défaut, celle-ci est vide mais vous pouvez lui attribuer la valeur « NULL » (pas de valeur) ou « CURRENT_TIMESTAMP ». Cette deuxième option est utilisée pour dater l'entrée au moment de sa création. Vous n'aurez ainsi jamais à remplir le champ « date » puisque celui-ci se remplira automatiquement au moment de la création.

défaut  PhpMyAdmin

La colonne d'interclassement permet de spécifier le jeu de caractère à utiliser pour stocker l'information.

Interclassement  PhpMyAdmin

Pour des chiffres, cela ne fait aucune différence mais pour le texte, vous aurez parfois à choisir l'encodage à utiliser. Il est très rare que l'on ait à s'en servir.

attribut  PhpMyAdmin

Attribut permet de spécifier des valeurs et des types supplémentaires au champ de notre table. « BINARY » permet d'éviter l'interprétation de l'information que l'on stocke.

Vous pouvez y retrouver le « UNSIGNED » (qui signifie « sans signe » , donc positif par défaut) à utiliser lorsque vous créez des ID (un ID est un entier strictement positif, on l'utilise donc non signé) ou que vous utilisez des nombres strictement positifs.

Vous pouvez aussi préciser, à chaque modification de l'entrée, de mettre à jour le champ avec la date de modification : « on update CURRENT_TIMESTAMP ».

Index PhpMyAdmin

« Null » force le champ à « pas de valeur ».

Le champ index possède plusieurs valeurs. Vous l'utiliserez au moins une fois par table pour définir le champ primaire.

« PRIMARY » est très important. Toute table doit avoir un champ primaire. Ce champ est utilisé pour améliorer les performances et décider de la manière dont vont être stocké les informations. C'est le premier champ que va regarder MySQL lors de vos requêtes sur la base. Par conséquent, chaque valeur pour le champ primaire doit être unique. Cela est assez simple puisque l'on utilise un champ ID qui lui est unique pour chaque entrée.

Si vous utilisez la valeur « UNIQUE », chaque entrée de ce champ devra être distinct et une erreur sera retournée si vous entrez une valeur identique à une entrée déjà existante dans la base.

« INDEX » impose la même contrainte que pour « PRIMARY » mais MySQL ne le regardera pas forcément en premier selon la manière dont sera posé votre requête.

« FULLTEXT » sera utilisé pour effectuer des recherche complète sur les différentes entrées du champs (comme par exemple rechercher un mot clef dans un livre et redonner les numéros de lignes ou il se trouve)



Enfin, terminons par la plus utile des options proposées : « A_I » ou « Auto Increment » permet d'augmenter la valeur de 1 à chaque nouvelle entrée dans la table. C'est cette case que l'on va cocher pour notre champ d'ID qui s'incrémentera donc tout seul au fur et à mesure que l'on rajoutera des éléments dans la table.

Le champs de « Commentaires » à la fin est utile pour vous rappeler de quoi vous parler (si pour certain champs, le nom n'est pas assez explicite). Vous pouvez y entrer ce que vous souhaitez.

Nous ne toucherons pas au reste des champs disponibles sur cette page. On en a déjà fait beaucoup !

Maintenant que nous avons rempli tous les champs, vous devriez avoir ceci :

Création Table PhpMyAdmin

Il ne vous reste plus qu'à sauvegarder votre configuration avec le bouton « Sauvegarder » en bas à droite !

Un message de confirmation viendra vous informer de la bonne manoeuvre :

Confirmation création table PhpMyAdmin

Vous pouvez maintenant constater que notre table a bien été créée dans notre base de données :

Base de donnée PhpMyAdmin

Cliquez dès maintenant sur la table « Livre » que nous venons de créer.

Votre nouvelle table affichera alors toutes ses caractéristiques.

Nous nous trouvons dans l'onglet structure. De là, vous pourrez modifier la structure de votre table si besoins est mais il est très déconseillé de le faire une fois que vous y avez ajouté des entrées. Cela pourrait complètement faire planter votre site si celui-ci utilise beaucoup les bases de données.

Structure table phpmyAdmin

A partir de là, nous pouvons dire que nous avons terminé la création complète de notre base de données.

Nous pourrions dès maintenant retourner coder du Php ou n'importe quel autre langage et notre base fonctionnerait parfaitement !

Il nous reste tout de même des choses importantes à savoir faire avec PhpMyAdmin. Surtout parce que vous les utiliserez beaucoup au début.

 

Suivez le guide !

Les actions de bases sur une table

Nous allons maintenant apprendre toutes les actions de bases que l'on peut effectuer sur une table à savoir :

  • Insérer une entrée
  • Supprimer une entrée
  • Modifier une entrée
  • Afficher les entrées
  • Effectuer une requête sur la table

Puis les différentes actions qui vous seront utiles comme

  • Sauvegarder une base MySQL
  • Restaurer une base MySQL
  • Vider une table
  • Supprimer une table

 

Suivez le guide ! Insertion, suppression et modifications des entrées

Nous allons commencer par ajouter des entrées dans notre table. Pour cela, utilisez l'onglet « Insérer » en haut de votre page :

Insérer une entrée PhpMyAdmin

Vous tomberez alors sur l'interface d'insertion d'une entrée. Les champs « id » et « date » ne sont pas à remplir puisque l'on a spécifié comment la base devait les gérer lorsque l'on a créé la table.

Nous n'avons donc qu'à remplir les champs de pseudo et le message.

Une fois fait, vous pouvez cliquer sur « Exécuter » en bas à droite.

La base nous notifie encore une fois que l'opération à réussi :

Confirmation entrée ajoutée phpMyAdmin

Note intéressante : vous pouvez voir juste en dessous la requête SQL que nous avons effectué sur la base de données pour insérer cette entrée. C'est exactement cette même syntaxe que nous utiliserons plus tard lorsque nous utiliserons PHP.

Vous pouvez maintenant constater que l'entrée a bien été ajoutée en cliquant sur l'onglet « afficher » en haut à droite :

Afficher phpmyAdmin

Si vous souhaitez modifier cette entrée, vous pouvez voir un petit crayon juste à côté de celle-ci. Il suffit simplement de cliquer dessus pour être redirigé sur l'interface que nous avons utilisé pour créer notre première entrée.

Cette fois-ci, les champs seront déjà remplis avec le contenu de l'entrée que vous avez sélectionné. Il suffira alors d'effectuer vos modifications puis de sauvegarder l'entrée et le tour sera joué !

Si vous voulez supprimer cette fois-ci l'entrée, cliquez simplement sur la croix rouge a côté de l'entrée. Attention ! Une entrée supprimée ne pourra pas être récupérée ! Utilisez donc cette commande en sachant bien ce que vous faites !

Alerte suppression message PhpMyAdmin

Voici la table une fois que nous y avons ajouté plusieurs entrées :

entrée PhpMyAdmin

Vous pouvez constater que l'ID des messages augmente tout seul alors que nous n'avons rien fait ! Chouette n'est-ce pas ?

Si vous souhaitez effectuer une requête manuelle sur la table, vous pouvez utiliser l'onglet « SQL » en haut de la page :

SQL PhpMyAdmin

Ici, on nous propose déjà une requête :

  1. SELECT * FROM `livre` WHERE 1

Elle affiche tout simplement tout ce qui se trouve dans la table. Nous y reviendront par la suite pour comprendre comment elle fonctionne.


Suivez le guide ! Actions de maintenance sur une table

Maintenant que vous avez ajouté des entrées à votre table, nous allons chercher à sauvegarder celles-ci. Sur les gros sites, des sauvegardes sont effectuées tous les jours. Comme nous ne sommes encore qu'au commencement, nous feront une première fois la sauvegarde à la main puis nous verrons plus tard comment automatiser cela avec des scripts.

Cela vous permettra non seulement d'avoir une copie de sauvegarde de vos bases de données mais aussi de conserver leurs structures ainsi que les données contenues.

Vous n'aurez donc en cas de coup dur qu'une perte de contenu mais votre site continuera à fonctionner car seul des données manquent.

Rendez-vous dans l'onglet « Exporter » :

Exporter PhpMyAdmin

Vous pouvez constater qu'il y a beaucoup d'options possibles. Généralement, la configuration de base est plus que suffisante et il suffit simplement de cliquer sur « Exécuter » en bas à droite pour obtenir le fichier à télécharger sur votre disque.

Ce sera bien sur un fichier .SQL qui contiendra, en langage SQL, la description complète de votre base de données c'est-à-dire des dizaines de milliers de requêtes SQL. C'est ce fichier que je vous ai montré lors de l'introduction. Les vrais fichiers SQL eux sont véritablement illisibles.

Si maintenant en sens inverse vous souhaitez restaurer votre base de données, il suffit de se rendre dans l'onglet « Importer » :

Importer PhpMyAdmin

Sélectionnez alors simplement le fichier SQL qui contient la base de données que vous souhaitez restaurer puis cliquez sur « Exécuter ».

Elle sera remise en place comme au moment de sa sauvegarde !

Les deux opérations les plus à risque sur une base de donnée son le vidage de la table et la suppression de la table que vous retrouvez avec les deux onglets écrits en rouge :

Vider Supprimer PhpMyAdmin

Lorsque vous videz la table, vous supprimer sans moyen de retour toutes les données qui s'y trouvent. Seul la structure restera.

Si en revanche vous supprimer la table, tout disparaitra ! (D'où le fait d'avoir des copies de sauvegarde !) Il faudra donc réfléchir à deux fois avant d'utiliser ces onglets !

Il ne nous reste qu'une dernière chose à voir : les opérations de maintenance.

Elles sont disponibles dans l'onglet « Opération » :

Opération MySQL

Vous pouvez d'ici effectuer plusieurs actions importantes :

  • Changer le nom de la table : on ne sait jamais qu'il ne vous plaise pas.

  • Réordonner la table si vous avez supprimé des messages et qu'il commence à y avoir beaucoup de trous (surtout au niveau de l'ID).

  • Déplacer la table vers : si vous voulez déplacer cette table dans une autre base de données.

  • Copier la table permet de faire une copie de la table dans une autre base ou dans la même mais attention, dans ce cas il faudra qu'elles aient toutes deux un nom différent.

  • Optimiser la table. Par usure d'utilisation, la table finie par souffrir de pertes qui la ralentissent et génère des erreurs d'où le fait que l'on puisse l'optimiser pour la rendre plus efficace.

  • Réparer la table par exemple en cas de crash du serveur qui était entrain de travailler avec la base de données et l'aurait abimé à ce moment-là.

Voilà toutes les opérations que vous utiliserez plus ou moins souvent.

 



Vous êtes maintenant officiellement utilisateur confirmé de PhpMyAdmin ! Vous savez y effectuer toutes les opérations qui vous seront utiles par la suite ! Et même plus encore !

La prochaine étape va être l'utilisation de notre base de données depuis PHP. Et oui, on ne va pas rentrer 1 à 1 à la main les messages des utilisateurs sur le forum ! Il existe des scripts pour cela ! Et c'est ce que nous allons décourvir !