Foodly, où nous allons stocker les utilisateurs ainsi que les aliments de notre application fictive.
... SE' =====
Avant de commencer, pourquoi ai-je besoin d’une base de données ?
**Une application, c’est le code informatique qui vous permet d’effectuer des actions... i ou écrire du texte. Or, cette application a besoin de données pour exister, données qu’elle va pioch
r plusieurs types de données entre elles.
Pour l’instant, vous avez utilisé de la donnée sans relatio... es relations entre ces mêmes utilisateurs et certains aliments.
Nous verrons comment mettre en place ... lations qu’ils ont entre eux.
===== Extrayez des informations via une relation 1 à plusieurs =====
B... t utiliser Foodly, et ce, dans plusieurs pays.
Afin de pouvoir s’adapter à chacun, l’application va d
ag>cours dev sql bdd sgbdr database db}}
====== Insérez des données dans votre BDD ======
Notes et ... Jour
Votre base de données est bien vide pour l’instant... Ne désespérez pas, nous allons justement ... u de retrouver les commandes !
- Ouvrez un terminal et lancez MySQL.
- Regardez si la base foodly... ''SHOW databases;'', ''USE ma_base_de_donnee;'' ainsi que ''SHOW tables;''.
Vous vous éviterez bien
, la même version que dans la partie précédente.
Insérer de la donnée, la modifier, la supprimer, ou bien en tirer des informations utiles est désormais à votre portée.
M... une chose importante dont vous aurez toujours besoin si vous souhaitez adapter votre BDD aux évolution... emandée était celle de voir la contenance en vitamines de chaque aliment.
Sachant cela, l’équipe de F
les d’aliments pourront être utilisées de manière indépendante, pas forcément uniquement sur les fiche... ’une personne sur un mois, ou la répartition au sein de ses courses.
<note>
Pour cela, il faudrait qu... les familles d’aliments soient sur une table distincte de celle des aliments !
</note>
Maintenant que vous savez joindre plusieurs tables entre elles, i
vous, on aimerait ensuite ajouter le type de magasin où sont présents les aliments. Un même aliment po... s. Voyons comment faire !
===== Analysez le besoin fonctionnel =====
La dernière demande de mise à ... liser dans l’application de Foodly dans quel magasin sont disponibles leurs aliments préférés. Par exe... permarché).
<code sql>
CREATE TABLE lieu (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nom VARCH
sgbdr database db}}
:TODO_DOCUPDATE:
====== Continuez votre apprentissage ======
Notes et transcrip... efois retenir à long terme ce sont les **grands principes, les grands concepts** qui s'appliquent aux ... s MySQL, mais il n'existe pas que celui-ci! Les principaux concurrents à MySQL sont :
* SQLite
* ... tés**, ses particularités et conviendra plus ou moins bien dans certaines circonstances.
Rassurez-vou
abase db}}
:TODO_DOCUPDATE:
====== Extrayez des informations spécifiques de votre BDD ======
Notes ... ttps://openclassrooms.com/|Openclassrooms]].
Maintenant que votre base de données est remplie, il serait temps d’en **extraire des informations pertinentes**. En effet, il serait peu utile d’avoir une BDD si cette dernière ne pouvait q
rapidement (parfois, la différence se compte en minutes !).
Privilégiez-le avant d’effectuer des req... >
Copiez et collez cette commande dans votre terminal. Que voyez-vous ? Le chiffre 4 je suppose.
MyS... le nombre d’objets. Mais vous pouvez aussi restreindre le comptage à une colonne spécifique en écriva... z cette commande, vous devriez avoir 3 lignes distinctes dont les noms de produits contiennent tous 'p
oot --database=moviz < /tmp/moviz.sql
</code>
Définir des droits d'accès à la base :
<code sql>
GRANT... myPassw0rd';
FLUSH PRIVILEGES;
</code>
On peut maintenant se connecter à la base pour l'exercice :
<... relation un à plusieurs entre “film” et “note”, ainsi que la relation plusieurs à plusieurs entre “fi... |
| langue | VARCHAR(255) | la langue principale du film |
| budget | INTEGER
à jour un objet en particulier =====
Admettons maintenant qu’un utilisateur souhaite mettre à jour so... mment **sélectionner la ligne** correspondant.
Maintenant que vous avez cela en tête, tapez cette commande dans votre terminal pour changer l’e-mail du premier utilisateur :
... ode sql>
UPDATE `utilisateur` SET `email` = 'quentind@gmail.com' WHERE `id` = '1';
</code>
Vous devri
ents dans votre BDD ?
Comme pour les commandes d’insertion, vous allez devoir indiquer la table dans laquelle vous souhaitez récupérer la donnée, ici “ut... a suite, je suppose que vous avez toujours un terminal d'ouvert, avec MySQL lancé, et que vous utilise... e précédent.
Tapez cette commande dans votre terminal :
<code sql>
SELECT * FROM utilisateur;
</code
déteste faire deux fois la même chose.
Vous imaginez devoir retaper la même commande SQL à chaque fo... e dernière s’utilise désormais comme une table.
Ainsi, pour récupérer les utilisateurs avec une adresse Gmail, plus besoin d’écrire ma requête compliquée !
Avant de passer... lisible, non ? Et si c'est plus lisible, c'est moins d'erreurs demain, et encore moins après-demain.
de gestion de base de données (SGBD)]]
* [[120_installer_mysql|Installez le SGBD MySQL]]
* [[130_creer_la_base|Créez votre base de données (BDD)]]
... données avec les opérations CRUD =====
* [[210_inserer_dans_bdd|Insérez des données dans votre BDD]]
* [[220_selectionner_dans_bdd|Sélectionnez les d
===== Supprimez un objet en particulier =====
Finissons par un dernier cas d’usage. Admettons qu’un utilisateur souhaite se désinscrire de Foodly. Il faudrait alors le supprimer d... ATABASE foodly ;
</code>
Bon, en vérité, pas besoin de vous faire un dessin... Je pense que vous avez compris le danger d'une telle commande. Pour les pl