• 6 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 5/31/22

Créez votre base de données (BDD)

Log in or subscribe for free to enjoy all this course has to offer!

On rentre dans le dur ! Il est temps de créer votre première base de données.

Comme expliqué précédemment, nous allons créer une base appelée Foodly, où nous allons stocker les utilisateurs ainsi que les aliments de notre application fictive.

Créez votre BDD avec CREATE DATABASE

Pourquoi ai-je besoin d’une base de données ?

Une application, c’est le code informatique qui vous permet d’effectuer des actions. Par exemple, commander un taxi ou écrire du texte. Or, cette application a besoin de données pour exister, données qu’elle va piocher dans une BDD.

Créons la base qui contiendra nos objets.

C’est quoi un objet ?

Moi aussi, à une époque, j’étais comme vous, perdu dans le jargon propre aux BDD.

  • Dans une BDD, on stocke plusieurs choses. Et même un peu ce qu’on veut. Un objet, c’est chacune de ces “choses”. Imaginons que vous soyez au marché. Un objet, c’est une volaille, un fruit, etc.

  • Si on reprend notre exemple de l’application Foodly, une pomme ou une poire sont chacune une instance d’un objet “fruit”.

Chaque application est associée à une base de données. Foodly étant une seule et unique application, nous allons créer une seule BDD. Base qu’on va tout naturellement appeler… Foodly. 😉

Pour activer MySQL dans votre terminal, il va falloir exécuter la commande  mysql -u root -p  . Cette commande signale que vous souhaitez lancer MySQL, avec l’utilisateur root en saisissant le mot de passe (vous vous en souvenez ? Nous en avons parlé précédemment 😉). Justement, MySQL nous demande ledit mot de passe. Entrez celui que vous avez créé précédemment, et le tour est joué !

Écran du terminal suite à l’entrée de votre mot de passe
Écran du terminal suite à l’entrée de votre mot de passe

Pour créer une base, on utilise la commande  CREATE DATABASE nomdelabase;  .

Pourquoi ce point-virgule à la fin de la ligne ?

C’est une obligation pour signaler à SQL qu’on a terminé une instruction. Imaginez, vous êtes en train de monter un meuble Ikea. Pour passer d’une étape à une autre, vous regardez les différentes cases du schéma de montage, souvent numérotées. Eh bien, le point-virgule, c’est l’équivalent de la fin d’une case pour SQL.

Pour créer la base de Foodly, la commande à taper devient  CREATE DATABASE foodly;  .

Écran du terminal après avoir saisi la commande. il est écrit Query Ok, 1 row affected (0,01 sec)
Écran du terminal après avoir saisi la commande

Il reste néanmoins un problème : MySQL ne sait pas que vous souhaitez spécifiquement utiliser cette base de données. Car vous pourriez en avoir plusieurs ! Imaginez que vous travailliez sur plusieurs projets à la fois, vous pourriez très bien avoir une base de données pour chacun.

Pour sélectionner la base que vous venez de créer, utilisez la commande  USE nomdelabase;  , qui devient donc…  USE foodly;   (vous commencez à comprendre la logique ? 😉).

Écran du terminal pour l’utilisation de la BDD
Écran du terminal pour l’utilisation de la BDD

Une fois  USE foodly;   exécutée, ça y est, la base Foodly est sélectionnée et vous travaillez uniquement dans cette dernière.

Avant d’aller plus loin, je vous propose de réaliser les différentes commandes dans votre terminal et de vérifier la bonne saisie avec ce screencast :

Testez l’activation de votre BDD avec SHOW TABLES

Pour tester l’activation de votre base de données, vous allez y insérer votre premier objet. Dans son état actuel, votre base vide ne vous sert pas à grand-chose...

Définissez les types de données

Avant de pouvoir insérer quoi que ce soit, vous devez d’abord créer une table. En effet, chaque “table” est l’équivalent d’une feuille de travail dans un logiciel type Excel ou Google Sheets, qui stocke toutes les occurrences d’un objet en particulier.

Qui dit base de données dit type de données. MySQL doit savoir quelle forme auront vos objets avant de vous laisser les manipuler dans chaque table. C’est l’équivalent en SQL de la modélisation de bases de données où vous devez déclarer les objets que vous souhaitez stocker et ce qu’ils vont contenir. 

Quand on parle de type en base de données, on peut parler de deux types :

  • Les types d’objets, catégorisés par leur nom. Par exemple, vous avez ici deux objets dont les noms sont utilisateur et aliment. La convention veut qu’on utilise des noms en minuscules et au singulier.

  • Les types de champs, dont on va parler juste après.

Créez vos deux tables !

Pour votre base Foodly, vous avez deux tables à créer

  • une pour les objets de type utilisateur ;

  • une autre pour les objets de type aliment.

Je vous propose de copier-coller cette commande pour créer la table des utilisateurs. Je vais ensuite vous l’expliquer, ne vous en faites pas.

CREATE TABLE utilisateur (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100),
prenom VARCHAR(100),
email VARCHAR(255) NOT NULL UNIQUE
);

Mais que vient-on de faire ?

Votre objet utilisateur va être composé de plusieurs caractéristiques, aussi appelées champs. Tout comme votre passeport qui recense votre nom ou votre âge, eh bien, pour vos utilisateurs, on va faire de même.

Chacun de ces champs doit avoir un type, pour que MySQL comprenne à quoi “va ressembler” la donnée qui sera stockée dans ce champ. Par exemple, est-ce que le champ contiendra du texte, des chiffres, etc.

Ici, on déclare plusieurs champs qui seront partagés par tous les utilisateurs. Voici un tableau récapitulatif du schéma des utilisateurs :

Nom du champ

Type du champ et options

Description

id

PRIMARY KEY (option)

Champ spécial obligatoire dans toutes les tables. Indique à MySQL que ce champ sera l'identifiant permettant d'identifier les objets.

 

INTEGER (type)

 Champ numérique sous forme de nombre entier.

 

NOT NULL (option)

 Ce champ ne peut pas être nul.

 

AUTO_INCREMENT (option)

Ce champ sera créé par MySQL automatiquement, pas besoin de s'en soucier ! MySQL va utiliser l'id précédent et y ajouter +1 lors de l'ajout d'un nouvel objet.

nom

 VARCHAR(100) (type)

Champ sous forme de texte, limité à 100 caractères.

prenom

VARCHAR(100) (type)

Champ sous forme de texte, limité à 100 caractères.

email

 VARCHAR(255) (type)

Champ sous forme de texte, limité à 255 caractères.

 

 NOT NULL (option)

Ce champ ne peut pas être nul.

 

UNIQUE (option)

Ce champ ne peut pas avoir la même valeur en double.

Au tour des aliments ! Copiez-collez cette commande pour créer leur table.

CREATE TABLE aliment (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
marque VARCHAR(100),
sucre FLOAT,
calories INTEGER NOT NULL,
graisses FLOAT,
proteines FLOAT,
bio BOOLEAN DEFAULT false
);

Que signifient ces nouveaux types de données ?

Voici leur explication :

  • FLOAT   signifie que le champ contiendra des chiffres décimaux ;

  • BOOLEAN   est un type de champ très connu en informatique. Il ne peut stocker que les valeurs  true   (vrai) ou  false   (faux) ;

  • DEFAULT   sert à indiquer une valeur par défaut. Utile pour ne pas avoir à spécifier une valeur tout le temps ! Ici, on indique que la valeur par défaut sera la valeur  false  .

Et pour les champs, c’est assez simple :

  • id : l'identification de l'objet ;

  • nom : le nom de l’aliment (ex. : lait de soja) ;

  • marque : sa marque (ex. : Bjorg) ;

  • sucre, calories, graisses, proteines : la contenance de chaque élément en grammes (ex. : “2” pour 2 grammes) ;

  • bio : si l’aliment est bio ou non.

Voici un exemple de ce que donnerait cette table avec quelques aliments :

id

nom

marque

calories

sucre

graisses

proteines

bio

1

Pomme

Monoprix

65

14,4

0,4

0,4

FALSE

2

Oeuf bio

Carrefour

167

0

11,1

14,2

TRUE

3

Brique de lait

Intermarché

414

43,2

13,5

28,8

FALSE

Comment je vérifie que ma BDD est bonne ?

Pour vérifier que tout ce que vous avez fait fonctionne, rien de plus simple ! On demande à MySQL de nous afficher toutes les tables présentes dans notre base grâce à la commande  SHOW tables;  .

Écran du terminal après avoir saisi la commande SHOW tables
Écran du terminal après avoir saisi la commande SHOW tables

On peut même aller encore plus loin en demandant à MySQL de nous afficher le schéma de chaque table grâce à la commande  SHOW COLUMNS FROM lenomdematable;  .

Pour lire le schéma de vos tables, il vous faut taper  SHOW COLUMNS FROM utilisateur;   et  SHOW COLUMNS FROM aliment;  . Si vous obtenez le même résultat que sur ces screenshots, c’est que vous avez tout bon !

Affichage des schémas des tables utilisateur et aliment
Affichage des schémas des tables utilisateur et aliment

Vous avez saisi ces nouvelles commandes dans votre terminal ? Vérifiez-les grâce au screencast récapitulatif :

Et voilà, votre BDD est à jour !

En résumé

  • Pour créer une base de données, on utilise la commande  CREATE DATABASE;  .

  • Une table est un espace dans votre base de données qui va stocker des objets de même type. On la crée avec la commande  CREATE TABLE;  .

  • Pour vérifier la création des tables, on utilise la commande  SHOW COLUMNS FROM table;   qui permet de voir la structure de cette table.

Vous voici en possession de la BDD de Foodly. Néanmoins, elle est encore bien vide ! Passons au chapitre suivant pour apprendre comment la remplir. 😉

Example of certificate of achievement
Example of certificate of achievement