Créer une base de données en 7 minutes (sans se prendre la tête)

Créer une base de données en 7 minutes (sans se prendre la tête)

Tu as commencé à développer tes premiers sites avec HTML/CSS, probablement un peu de PHP, et maintenant tu as besoin de stocker des données. Il est nécessaire d’enregistrer les noms de tes utilisateurs, les prix de tes produits, etc. Avoir une base de données dans un projet web est indispensable. Tu te demandes donc comment créer une base de données.

En effet, si tu n’as pas de base de données dans tes projets, tu vas vite te retrouver bloqué. Tu ne peux pas mettre toutes les données brutes dans ton code. Il te faut les stocker quelque part. Sans base de données aujourd’hui, il est très difficile d’avoir un projet qui tient la route. Elles sont essentielles pour enregistrer toutes sortes d’informations que tu utiliseras partout sur ton site web.

Mais ne t’en fais pas, dans cet article je vais te montrer comment créer une base de données facilement pour que tu puisses l’intégrer à ton site. Ainsi, tu pourras offrir une meilleure expérience à tes utilisateurs, afficher toutes les données qui les intéressent, leur créer des comptes, enregistrer des images, etc.

Qu’est-ce qu’une base de données ?

Tout d’abord, il faut bien comprendre ce qu’est une base de données.

Une base de données est un ensemble structuré et accessible d’informations grâce à un logiciel. Ce logiciel est appelé un Système de Gestion de Base de Données (SGBD). Il en existe différents selon le langage utilisé. Par exemple, pour le langage SQL, il existe MySQL, PostgreSQL, Microsoft SQL Server.

Toutes les données contenues dans une base doivent avoir un type : chiffre, chaîne de caractères, nombre décimal, etc.

Les bases de données sont très pratiques pour stocker toutes les informations brutes de manière structurée afin de pouvoir facilement les récupérer et les utiliser dans un site web (ou autre).

Les prérequis

Dans cet article, je vais te montrer comment créer une base de données MySQL. Il faudra donc que tu l’aies installée sur ton ordinateur.

Pour cela, je te conseille d’utiliser un serveur local comme WAMP pour Windows ou XAMP pour les autres systèmes.

Une fois que tu auras installé ce serveur local, tu auras accès à tous les outils de développement nécessaires : PHP, MySQL, Apache, PhpMyAdmin (interface pour gérer les bases de données).

Il existe 2 façons de créer une base de données :

  • En ligne de commande : en écrivant des requêtes SQL à la main. C’est une très bonne manière d’apprendre le langage SQL, mais cela prend un peu de temps.
  • En interface graphique (avec PhpMyAdmin) : il suffit simplement de cliquer sur des boutons et de remplir les champs nécessaires. C’est très rapide, mais cela ne permet pas d’apprendre correctement le langage SQL.

Pour chaque étape de ce tutoriel, je vais te montrer les 2 façons de faire. D’abord en ligne de commande, puis avec l’interface graphique.

Conceptualise ta base de données

Avant de commencer à créer une base de données, il faut d’abord la conceptualiser. C’est-à-dire la schématiser pour avoir une vision claire de là où tu vas. C’est un peu comme un plan pour une maison. On fait d’abord le plan avant de la construire.

Pour les bases de données, c’est pareil. On va la schématiser, faire une représentation de la structure des données. Il est possible de faire ce travail sur un bout de papier ou avec des logiciels tels que Diagrams. Ce schéma s’appelle un Modèle Conceptuel des Données (MCD). C’est une façon standardisée de schématiser une base de données.

Le MCD d’une base de données doit ressembler à ça :

[Image de l’article]

Ici, nous avons une “entité” (qui correspondra à une table en base de données) Auteur et une entité Livre. Chacun a ses propres propriétés (id_a, nom_a, prenom_a, titre_l, annee_l…). Ces entités ont une relation entre elles. Cette relation est définie par un verbe.

À lire aussi  Création d’un site internet pour Gîte : Logiciels, Guide & Conseils

On comprend donc qu’un auteur rédige 1 ou plusieurs (“N”) livres et qu’un livre peut être rédigé par 1 ou plusieurs auteurs (“N”). C’est donc une relation “ManyToMany”.

Cela paraît complexe au début et ce n’est pas vraiment le cœur de l’article, mais il est important de comprendre ces notions de schématisation de base de données. En effet, cette modélisation permet d’avoir un document commun à tous pour comprendre comment est construite une base de données.

Si tu souhaites plus de détails sur la modélisation, tu peux regarder ce PDF.

On peut désormais rentrer dans le vif du sujet.

Se connecter à MySQL

La première chose à faire pour créer une base de données est de se connecter à MySQL. MySQL demande un nom d’utilisateur ainsi qu’un mot de passe pour se connecter.

Comme je l’ai précisé avant, je vais montrer les 2 méthodes possibles à chaque fois. Une en ligne de commande, l’autre avec PhpMyAdmin.

Méthode 1 : En ligne de commande

Pour se connecter en ligne de commande, il va falloir accéder au dossier dans lequel se trouve l’exécutable de MySQL. Il dépend du chemin que tu as précisé lors de l’installation de ton serveur local. Si tu n’as rien changé, par défaut, il se trouve dans C:wamp64binmysqlmysqlX.X.Xbin.

Grâce à l’instruction cd, rends-toi dans ce dossier.

cd C:wamp64binmysqlmysqlX.X.Xbin

Maintenant que tu es dans le dossier, il faut se connecter :

mysql -u root -p

-u indique quel utilisateur tu souhaites utiliser. Par défaut, MySQL a créé l’utilisateur root. Et -p demande le mot de passe. Par défaut, pour l’utilisateur root, il n’y a pas de mot de passe. Appuie sur “Entrer” lorsque le mot de passe t’est demandé.

“mysql” devrait maintenant apparaître au début de ta ligne de commande.

Tu peux mettre ce chemin en variable d’environnement pour pouvoir accéder à la commande “mysql” depuis n’importe quel dossier.

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

Si tu obtiens cette erreur : ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061), c’est que le serveur n’est pas lancé. Lance le serveur. Une icône verte devrait apparaître dans la barre des tâches.

Méthode 2 : avec phpMyAdmin

Avec phpMyAdmin, rien de plus facile pour te connecter. Il suffit de te rendre sur l’adresse : http://localhost/phpmyadmin/ et de rentrer l’identifiant “root”, sans mot de passe.

Tu arrives sur l’interface d’accueil de phpMyAdmin.

Créer une base de données

Maintenant nous allons créer notre base de données.

On va dire que l’on souhaite faire un annuaire des numéros de téléphone des personnes. Pour cela, on va créer notre base de données puis une table “personne”.

Commençons par créer la base de données.

Méthode 1 : en ligne de commande

En ligne de commande, pour voir les bases de données existantes, tu peux faire la commande :

SHOW DATABASES;

Pense à bien mettre le point-virgule “;” à la fin de chaque ligne de commande MySQL. Sinon ça ne marchera pas.

Par défaut, certaines bases de données sont déjà créées (information_schema, mysql, performance_schema, sys).

On va donc créer une base de données qui s’appellera “annuaire”

CREATE DATABASE annuaire;

Il faut ensuite dire à MySQL que l’on va utiliser cette base de données.

USE annuaire;

Méthode 2 : avec phpMyAdmin

Clique sur “Nouvelle base de données”, puis rentre le nom de la base de données dans le formulaire. Clique sur “Créer”.

Créer ta première table

Les bases de données relationnelles fonctionnent avec des tables. Chaque table représente une entité / un objet (personne, produit, commande, etc.) et est composée de propriétés.

On va pouvoir créer notre première table.

Une table a un ensemble de propriétés qui ont toutes un type défini. Dans notre cas, on va créer une table “personne” qui aura en propriétés :

  • id de type “integer” (chiffre)
  • nom de type “varchar” (chaîne de caractères)
  • prénom de type “varchar” (chaîne de caractères)
  • numero_telephone de type “integer” (chiffre)

Qu’est-ce que l’id ?

“id” signifie identifiant. C’est un numéro unique pour chacune des personnes qui seront entrées dans la table.

Avec MySQL, il faut impérativement mettre un id sur chaque table pour pouvoir identifier de façon unique chaque enregistrement. C’est ce que l’on appelle une clé primaire.

À lire aussi  Devenir Hôte Airbnb : Guide Pratique et Facile 2023

Chaque propriété de ta table sera définie par plusieurs éléments :

  • Un nom : quel nom tu donnes à ta propriété : nom, prénom, ville, etc.
  • Un type : chaîne de caractères, chiffre, nombre à virgule, etc.
  • Le nombre de caractères maximum que tu acceptes. Par exemple, pour un département, on pourrait dire que l’on ne souhaite que 5 chiffres maximum.
  • Si tu souhaites que le champ soit obligatoire ou non (NULL).

Bonnes pratiques

Lorsque l’on crée des tables et des propriétés, il faut respecter certaines bonnes pratiques pour que ça ne parte pas dans tous les sens.

Pour le nom des tables : écrire tout en minuscule. S’il y a besoin d’avoir plusieurs parties dans le nom, les séparer par un underscore “_”. Par exemple : detail_commande.

Il ne faut pas mettre d’accent.

Donne des noms simples pour s’y retrouver facilement. Pas la peine d’avoir des noms trop compliqués et incompréhensibles. Cela te fera galérer plus qu’autre chose par la suite. Donne un nom simple qui identifie bien ce qu’il va y avoir dans la table : personne, commande, produit, etc.

Rester cohérent dans le nom de tes tables et de tes champs. Ne fais pas de mélange français/anglais, etc. Si tu décides de les nommer en français, toutes tes tables doivent être en français.

Pense à toujours mettre une clé primaire (sur l’id) sur chacune de tes tables.

Méthode 1 : en ligne de commande

Pour créer une table en ligne de commande, nous allons utiliser l’instruction CREATE TABLE.

CREATE TABLE personne(
   id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
   nom VARCHAR(100),
   prenom VARCHAR(100),
   numero_telephone INT(10) NOT NULL
) ENGINE=InnoDB ;

Le ENGINE=InnoDB est simplement pour définir le type de la table. Il n’est pas obligatoire. Ne t’en préoccupe pas pour le moment. Il nous servira uniquement pour les relations entre tables par la suite.

Pour vérifier que la table est créée :

SHOW TABLES;

Puis pour afficher les propriétés de ta table :

DESCRIBE personne;

Méthode 2 : avec phpMyAdmin

Là aussi, c’est relativement facile. Lorsque tu cliques sur la base de données “annuaire” dans le menu à gauche, il te demande de créer une table et le nombre de colonne que tu souhaites.

Après avoir écrit “annuaire”, clique sur “Exécuter”.

Ensuite, tu n’as plus qu’à remplir les champs de cette façon :

[Image de l’article]

Je t’ai surligné en jaune tous les champs à remplir. N’oublie pas de cocher “A_I” pour la ligne “id”. Cela signifie AUTO INCREMENT (voir plus haut la définition).

Voilà, tu as créé ta première table. Voyons maintenant comment on va insérer des données dedans.

Insérer des données

Maintenant que l’on a créé notre base de données, on souhaite y ajouter des informations.

Méthode 1 : en ligne de commande

En ligne de commande, on va utiliser l’instruction INSERT INTO.

INSERT INTO personne (nom, prenom, numero_telephone) VALUES ('Paul', 'Dupont', '0654857596');

Avec l’instruction INSERT INTO, tu peux spécifier les champs que tu souhaites remplir, comme je viens de le faire, ou ne pas les indiquer :

INSERT INTO personne VALUES (null, 'Paul', 'Dupont', '0654857596');

Dans le cas où tu indiques les champs (après le nom de la table), il faudra que tu mettes les données dans le même ordre dans la partie VALUES. Ex: (nom(1), prenom(2), numero_telephone(3)) VALUES (‘Paul'(1), ‘Dupont'(2), ‘0654857596’(3));

Si tu n’indiques pas les champs au début, il faudra que dans la partie VALUES, tu mettes toutes les valeurs dans l’ordre attendu, même l’id (avec la valeur null car il se remplit tout seul).

Lorsque tu fais une instruction INSERT INTO, je te conseille de toujours indiquer les champs que tu souhaites remplir pour ne pas avoir de mauvaise surprise.

Pour vérifier que tout est bien rempli :

SELECT * FROM personne;

L’instruction SELECT te permettra d’aller récupérer n’importe quelle donnée de la base de données. Je pense que c’est la commande la plus utilisée dans les projets.

L’étoile (*) signifie que l’on souhaite récupérer tous les champs. On pourrait aussi écrire SELECT nom from personne, pour n’afficher que le nom.

Méthode 2 : avec phpMyAdmin

Clique sur la table dans laquelle tu souhaites insérer des valeurs.

Puis sur l’onglet “Insérer” dans le menu du haut.

Un formulaire apparaît, avec tous les champs, tu n’as plus qu’à remplir.

À lire aussi  Le dossier de crédit

Tu as la possibilité d’ajouter plusieurs enregistrements en même temps.

Tu n’as plus qu’à cliquer sur “Exécuter”, pour enregistrer.

PhpMyAdmin te retourne la requête qu’il a exécutée.

Pour aller plus loin : créer des relations entre tables

La relation entre tables va être nécessaire dans une base de données. En effet, ta base de données va être constituée de plusieurs tables. Il faut que ces tables aient des relations entre elles. Des produits sont rattachés à des commandes, des commandes à des clients, etc.

Dans notre exemple d’annuaire, on va imaginer que chaque personne possède plusieurs sites internet professionnels et que l’on souhaite y renseigner les URL de ces sites web.

On va donc créer une table “site_web”. Pour chaque URL de site web, on va le rattacher à une personne.

Ainsi, Pierre Dupont pourra avoir le site https://monsite.fr et https://pierredupont.fr.

Il va donc falloir que dans notre table “site_web”, on ajoute un champ qui référence l’id de la table personne.

Méthode 1 : en ligne de commande

CREATE TABLE site_web (
   id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
   url varchar(500) NOT NULL,
   personne_id INT,
   CONSTRAINT FK_personne FOREIGN KEY (personne_id) REFERENCES personne(id)
) ENGINE=InnoDB;

On crée la table “site_web” et on lui ajoute un champ “personne_id”, qui contiendra l’id de la personne qui détient ces sites web.

Pour lier 2 tables, il faut ensuite ajouter une clé étrangère (foreign key). Pour cela, on va lui donner un nom “FK_personne”, avec l’instruction CONSTRAINT. On va lui dire sur quel champ de la table on la souhaite : “personne_id”, puis avec quelle table et quel champ on fait la liaison “REFERENCES personne(id)”.

Pour ajouter un site à quelqu’un :

INSERT INTO site_web (url, personne_id) VALUES ('https://monsite.fr', '1');

Ici, on ajoute le site https://monsite.fr à la personne avec l’id 1.

On pourrait lui en ajouter plusieurs :

INSERT INTO site_web (url, personne_id) VALUES ('https://monsite.fr', '1'), ('https://monsite2.fr', 1);

Méthode 2 : avec phpMyAdmin

Sur phpMyAdmin, on va le faire en 2 étapes.

On va d’abord créer la table “site_web”, sans clés étrangères.

Ensuite, tu dois t’assurer que le type de tes tables soit en InnoDB et non en MyISAM.

MyISAM est un vieux système qui ne supporte pas les relations entre tables, il faut donc le changer en InnoDB.

Si c’est le cas, rien de grave, on va changer ça.

Clique sur le nom de la table puis dans “Opérations” dans le menu.

Dans la partie “Options pour cette table”, remplace MyISAM par “InnoDB” puis clique sur “Exécuter”.

Fais de même pour l’autre table.

Ensuite, clique sur le nom de la table “site_web”, puis vas dans l’onglet “Structure”, puis clique sur “Vue relationnelle”.

Donne un nom à la relation (FK_personne), indique sur quel champ tu veux la relation (personne_id), puis sur quelle base de données (annuaire), sur quelle table (personne) et champs (id) cette relation fait référence.

Clique sur “Enregistrer”.

La relation est faite.

Si tu vas sur la table “site_web” puis dans l’onglet “Insérer”, tu verras que tu as une liste déroulante au niveau du champ “personne_id”.

Il ne reste plus qu’à sélectionner à quelle personne tu souhaites attribuer le site web renseigné.

Tu pourras ainsi relier différentes tables entre elles dans tes projets.

Créer une base de données : ce qu’il faut retenir

Les bases de données sont essentielles dans les projets web et autres. Elles te permettent de stocker toutes les informations brutes avec un format spécifique pour pouvoir facilement les retrouver par la suite.

Pour créer une base de données, tu auras besoin d’un SGBD (Système de Gestion de Base de Données). MySQL est très bien. Il faudra notamment avoir un serveur local comme WAMP ou XAMP pour pouvoir y accéder.

Il existe différentes façons de le faire : soit en ligne de commande en écrivant des requêtes SQL (plus complexe mais permet de bien apprendre), ou en interface graphique avec phpMyAdmin (ou autre logiciel), c’est plus facile, mais on n’apprend pas correctement le langage SQL.

Pour créer une base de données, il faut utiliser l’instruction CREATE DATABASE nom_de_la_base ;.

Puis : USE nom_de_la_base ;

Pour créer une table, il faut utiliser l’instruction CREATE TABLE nom_de_la_table (nom_colonne_1 type_colonne, nom_colonne_2 type_colonne, …) ;

Chaque champ doit être typé : chiffre, chaîne de caractères, nombre à virgule, etc.

Pour insérer des valeurs, il faut utiliser l’instruction INSERT INTO nom_de_la_table (colonne1, colonne2) VALUES (valeur1, valeur2)

Pour lire les données dans une table, il faut utiliser l’instruction SELECT nom_champs1, nom_champs2 FROM nom_table WHERE condition

Chaque table doit avoir une clé primaire. Généralement, c’est la colonne id qui sert de clé primaire. C’est un identifiant unique qui identifie chaque enregistrement d’une table.

Les relations entre tables sont essentielles. Elles permettent de structurer la base de données et de pouvoir retrouver facilement certaines informations.

J’espère que ce tutoriel pour apprendre comment créer une base de données t’aura plu. Dis-moi dans les commentaires si tu as rencontré des difficultés lors de ce tutoriel pour que je puisse l’améliorer.

FAQ