[[info:bdd:accueilbdd|{{ :iconemaison.jpg?nolink&25|Sommaire Bdd}}]]
===== BDD - Créer une base de données avec phpMyAdmin =====
[Mise à jour le 18/6/2023]
* **Sources**
* Documentation de référence sur phpmyadmin.net
* Tutoriel sur le site **Openclassrooms** : Concevez votre site web avec php et MySQL
* **Lectures connexes**
* Wiki Raspberry Pi - Linux - [[raspberrypi:linux:siteweb|Installer un serveur (Apache - PHP - mySQL)]]
* Wiki Informatique - BDD - [[info:bdd:sqlphp|MySQL et PHP]]
----
**phpMyAdmin** n'est pas un programme, mais un ensemble de pages PHP toutes prêtes dont on se sert pour gagner du temps.
==== Présentation ====
phpMyAdmin est une application Web de gestion pour les systèmes de gestion de base de données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL. Wikipédia
==== 1 . Installer phpMyAdmin ====
* **Voir** Raspberry Pi - Linux - [[raspberrypi:linux:siteweb|Installer un serveur (Apache - PHP - mySQL)]]
==== 2. Se connecter à phpMyAdmin ====
=== 2.1 phpMyAdmin installé sur la plateforme Wampserveur===
- Lancer Wampserveur en cliquant sur {{:web:iconewamp.png?nolink|}}
- Sélectionner {{:web:phpma2.png?nolink|}}dans les icônes cachées {{:web:iconecachee.png?nolink|}}
- Sélectionner phpMyAdmin {{ :web:phpma.png?nolink |}}
=== 2.2 phpMyAdmin installé sans Wampserveur ===
* Ouvrir un navigateur et entrer @IP/phpmyadmin.
{{ :informatique:bdd:navphpmyadmin.png?nolink&400 |}}
=== 2.3 Login et mot de passe ===
* Entrer **root** ou **** et le mot de passe dans la page d'accueil.
{{ :web:accueilphpma.png?nolink&400 |}}
==== 3. Créer une base de données ====
* La page d'accueil de phpMyAdmin ressemble à la figure ci-dessous. Pour créer la base :
- Cliquer sur //Nouvelle base de données//.
- Entrer un **nom** (ex: test) et sélectionner //utf8_general_ci// pour l'interclassement.
- Cliquer sur **créer**.
{{ :web:phpma3.png?nolink |}}
==== 4. Créer une table ====
* **Création**
* Entrer un nom pour la table et sélectionner le nombre de colonnes puis cliquer sur //Exécuter//.
//Exemple// : entrer le nom //eleves// et //4// colonnes comme ci-dessous.
{{ :web:phpma4.png?nolink |}}
* **Attributs des champs**
// Exemple // : compléter les champs comme ci-dessous et cliquer sur **Enregistrer**.
{{ :web:phpma5.png?nolink |}}
* **Nom** : permet de définir le nom du champ (très important !) ;
* **Type** : le type de données que va stocker le champ (nombre entier, texte, date…) ;
* **Taille/Valeurs** : permet d'indiquer la taille maximale du champ, utile pour le typeVARCHARnotamment, afin de limiter le nombre de caractères autorisés ;
* **Index** : active l'indexation du champ. Cela signifie que le champ sera adapté aux recherches. Le plus souvent, on utilise l'index **PRIMARY** sur les champs de type id ;
* **A**UTO_**I**NCREMENT : permet au champ de s'incrémenter tout seul à chaque nouvelle entrée. On l'utilise fréquemment sur les champs de type id.
L'onglet **structure** doit s'ouvrir et afficher l'organisation de la base comme ci-dessous.
{{ :web:phpma6.png?nolink |}}
Toute table doit posséder un champ qui joue le rôle de clé primaire. La **clé primaire** permet d'identifier de manière **unique** une entrée dans la table. En général, on utilise le champ **id** comme clé primaire.
La table est maintenant prête à recevoir des données.
{{ :web:ex_table.png?nolink|}}
==== 5. Autres opérations sur la base ====
=== 5.1 Créer un utilisateur ===
- Cliquer sur le **nom** de la base de données (Ex: test), situé sur la gauche. Puis, dans le menu en haut, cliquer sur l'onglet //**privilèges**//.
- Cliquer sur "Ajouter un utilisateur".{{ :informatique:bdd:privileges.png?nolink |}}
- Entrer un //**nom**// d'utilisateur.
- Dans le champ //**Nom d'hôte**// sélectionner //**local**//. Cela veut dire que notre base de données va être utilisée sur un serveur local.
- Entrer et confirmer un **mot de passe**.{{ :informatique:bdd:phpmyadmincompte1.png?nolink&500 |}}
- Sélectionner //**Donner tous les privilèges...**// puis //**Exécuter**//{{ :informatique:bdd:privileges2.png?nolink |}}
=== 5.2 Modifier le schéma de la table ===
En cliquant sur //**test**// puis //**Colonnes**//, on retrouve le schéma de la table créée précédemment. Il est alors possible d'ajouter ou de retirer des champs.
{{ :web:structure_tb.png?nolink |}}
{{ :web:test.png?nolink|}}
=== 5.3 Ajouter du contenu à une table ===
Cliquer sur //**test**// puis sur **Insérer** et remplir la première entrée comme ci-dessous.
{{ :web:entree.png?nolink |}}
En cliquant sur l'onglet **Afficher** on obtient l'affichage de la première entrée dans la table.
{{ :web:entree1.png?nolink |}}
{{ :web:sql.png?nolink|}}
=== 5.4 Exécuter des requêtes SQL ===
En cliquant sur l'onglet **SQL** on accède à un éditeur permettant d'exécuter des requêtes SQL.
Exemple : SELECT * FROM `eleves` WHERE 1 signifie afficher le contenu de la table eleves.
*** Importer** et **Exporter** - Il est possible d'importer et d'exporter des données. Voir ici pour plus d'informations.
* **Opérations**
* changer le nom de la table
* déplacer la table vers une autre base
* copier la table dans une autre base
* optimiser la table
* **Vider** efface le contenu de la table. Toutes les entrées disparaissent, seule la structure de la table reste (c'est-à-dire les champs). **Cette opération ne peut pas être annulée**.
* **Supprimer** supprime la totalité de la table (structure et données). **Cette opération ne peut pas être annulée**.
----
==== Résumé ====
* phpMyAdmin permet de modifier et visualiser l'état d'une base de données sans avoir à écrire de requêtes SQL.
* Généralement, un champ nommé id sert à numéroter les entrées d'une table. Ce champ doit avoir un index PRIMARY (on dit qu'on crée une clé primaire) et l'option AUTO_INCREMENT qui permet de laisser MySQL gérer la numérotation.
* MySQL gère différents types de données pour ses champs, à la manière de PHP. On trouve des types adaptés au stockage de nombres, de textes, de dates, etc.
* phpMyAdmin possède un outil d'importation et d'exportation des tables.