Votre guide dans les plaines du far-web

Formation développeur web


« Donne un poisson à un homme, tu le nourris pour un jour. Apprends-lui à pêcher, tu le nourris pour toujours. » Lao Tseu

Présentation

Mis à jour le

Les bases de données sont très importantes lorsque l'on fait du développement web. Elles vont servir à stocker toutes les informations "statiques" dont un logiciel à besoin pour fonctionner. Par exemple, dans ce Moodle, la base de données est assez grande, et va servir à stocker des informations telles que…

~~ Fin de l'extrait ~~

Les GUI

Mis à jour le

Les GUI (pour Graphical User Interface), au contraire des CLI (Command Line Interface), permettent de travailler sur une base de données via une interface graphique. Vous pouvez très bien vous connecter à votre base de données via un terminal, puis saisir des commandes pour accéder ou modifier vos données. Mais…

~~ Fin de l'extrait ~~

Le langage SQL

Mis à jour le

Le SQL, pour Structured Query Language, est LE langage qui permet de communiquer avec une base de données. Il est hégémonique sur toutes les bases standards, et au même titre que HTML/CSS pour le front, le SQL est devenu une norme. Et c'est une bonne chose car vous n'aurez pas…

~~ Fin de l'extrait ~~

Installation et configuration

Mis à jour le

Avant de commencer à explorer les bases de données, vérifier bien que vous avez un serveur web local installé, un SGBDR, et une GUI. La stack habituelle est MySQL et phpMyAdmin. Cela se fait assez facilement avec des logiciels types :

  • Wamp
  • Xamp
  • EasyPHP
  • etc... (il existe plein d'autres)


Habituellement, les identifiants par défaut sur…

~~ Fin de l'extrait ~~

Structure d'une table

Mis à jour le

Les tables sont l'entité de base lorsque l'on parle de base de données. Une table, c'est une partie d'une DB qui va contenir des informations structurées sur un seul aspect de l’ensemble de vos données. Par exemple, si nous souhaitons réaliser un site d'agence immobilière, la base de données contiendra…

~~ Fin de l'extrait ~~

Les types de champs

Mis à jour le

Une des informations capitales lorsque l'on créé une table, c'est de donner des types au différents champs qui composent notre table. Comme en programmation, on va pouvoir typer tous les champs. Et contrairement à certains langages, ça n'est pas un option. C'est à dire que le SGBDR a besoin de…

~~ Fin de l'extrait ~~

Les clés primaires

Mis à jour le

(image visible sur la plateforme de formation)

Comme vous avez du le voir dans l'exercice précédent, le champ "id" est considéré comme clé primaire par défaut. Cela veux dire pour le SGBDR que deux lignes ne peuvent pas avoir le même id. Ce qui est ultra important, si…

~~ Fin de l'extrait ~~

Relations entre les tables

Mis à jour le

Une base de données ne comporte généralement pas qu'une seule table. On va donc avoir besoin de créer plusieurs tables qui reflètent chacune une "entité" nécéssaire au bon fonctionnement de nottre application. En revanche, ces tables sont bien souvent reliées entre elles pour des besoins d'intégrité de l'information. Pour prendre…

~~ Fin de l'extrait ~~

Modèle relationnel de données

Mis à jour le

La raison pour laquelle on utilise un logiciel dédié au stockage de nos données, au lieu de simples fichiers, c'est que l'on va pouvoir "configurer" l’organisation de l'information, et contraindre celle-ci à respecter un modèle qui répond au besoin de notre application. Pour faire simple, on va déterminer en amont…

~~ Fin de l'extrait ~~

Découverte du langage SQL

Mis à jour le

Bon, jusqu'ici, vous avez découvert un logiciel de gestion de base de données, et vous l'avez utilisé pour commencer à concevoir votre BDD. Mais qu'en est il du SQL ?

On va faire un premier détour sur ce langage absolument incontournable lorsque l'on travail sur une base de données.

Pour ce faire,…

~~ Fin de l'extrait ~~

Le CRUD

Mis à jour le

Maintenant que l'on a vu le fonctionnement basique d'une base de données, on va aller voir comment se fabrique les requêtes SQL que vous allez majoritairement utiliser dans votre application.

Quand on travaille sur des problématiques de BDD, il y a quatre choses que l'on fait extrêmement régulièrement :

  1. ajouter des données…
~~ Fin de l'extrait ~~

Ajouter des données

Mis à jour le

Lorsque l'on souhaite ajouter des données dans une table, on utilisera l'opérateur INSERT INTO. Il vous faut respecter une certaine syntaxe, qui ressemble à ceci :

(image visible sur la plateforme de formation)

Dans cet exemple, la requête INSERT INTO va demander à la BDD de rajouter une nouvelle ligne dans la…

~~ Fin de l'extrait ~~

Lire des données

Mis à jour le

La lecture des données de votre BDD représente la plus grosse partie des requêtes que vous écrirez. Normal, on a des données, le but ça reste quand même d'y accéder.

L'opérateur principal pour lire des données, c'est SELECT. Il est couplé avec l'opérateur FROM.

  • SELECT : définit les champs que l'on souhaite…
~~ Fin de l'extrait ~~

Modifier des données

Mis à jour le

Pour modifier des données, c'est assez simple, il suffit d'utiliser l'opérateur UPDATE.

Voici un exemple qui me permet de mettre à jour le champ "description" de l'annonce n°2 :

UPDATE `annonces` SET `description` = 'Un petit appartement en ville, parfait pour un primo-accédant.' WHERE `annonces`.`id` = 2;

Remarques :

  • UPDATE s'utilises avec le mot clé SET (un peu comme INSERT INTO /…
~~ Fin de l'extrait ~~

Supprimer des données

Mis à jour le

Si vous souhaitez supprimer des données, il vous faudra utiliser l'opérateur DELETE. Il fonctionne de manière assez simple, mais il faut faire attention car les données seront réellement supprimées, et il vous sera alors assez compliqué de revenir en arrière. Il existe néanmoins différentes sécurité pour qu'un DELETE n'efface pas…

~~ Fin de l'extrait ~~

Fonctions

Mis à jour le

En plus des opérateurs de base en SQL, et des clauses "logiques" (where, and, etc...), le langage SQL propose de nombreuses fonctions utiles. Les fonctions permettent d'appliquer des traitements sur l'informations, qui seront effectué directement par le SGBDR, avant qu'il ne retourne les résultats. Ce sont bien souvent des fonctions…

~~ Fin de l'extrait ~~

Exécuter des requêtes sur plusieurs tables

Mis à jour le

Comme nous l'avons vu, une base de données comporte généralement plusieurs tables. C'est même le cas dans 99.99% des cas. Vous allez donc souvent être emmenés à faire des requêtes qui se basent sur les données de plusieurs tables, et qui vont utiliser les contraintes de clés étrangères existantes dans…

~~ Fin de l'extrait ~~

Jointures

Mis à jour le

https://sql.sh/cours/jointures


http://creersonsiteweb.net/page-mysql-sql-jointures

Sous requêtes

Mis à jour le

https://sql.sh/cours/sous-requete

Exercices

Mis à jour le

Les indexes

Mis à jour le

Un index est un mécanisme existant à l'intérieur d'une table, qui a pour but d'optimiser la vitesse de recherche sur une colonne particulière. On va donc pouvoir "indexer" un champ qui est soumis à de nombreuses recherches, et qui contient de nombreuses lignes, afin d'optimiser les temps d'accès sur celui-ci,…

~~ Fin de l'extrait ~~

Utilisateurs et privilèges

Mis à jour le

Quand on gère une base de données, on va pouvoir définir plusieurs utilisateurs qui peuvent s'y connecter et travailler dessus. Au même titre qu'un utilisateur système, chaque utilisateur d'une base de données peux avoir des droits différents en fonction du rôle que vous lui donnerai.

Cette pratique…

~~ Fin de l'extrait ~~

Sauvegarde, import et export

Mis à jour le

Montrer les focntionnalités d'import/export.

Parler des backup, ou bien des migrations d'un serveur de dev vers un serveur de prod.

Voir les différentes options d'import / export. Structure, structure + données, etc....


https://www.memoinfo.fr/tutoriels-linux/guide-sauvegarde-restauration-mysql/


Exemple de script de backup : https://tech.gamuza.fr/mydump-un-petit-script-pour-sauvegarder-des-bases-de-donnees-au-format-bzip2.html

~~ Fin de l'extrait ~~

Les vues

Mis à jour le

(image visible sur la plateforme de formation)

La vue est importante dans une base de données parce qu'elle sert d'intermédiaire entre celle-ci et l'utilisateur. Il s'agit d'une table virtuelle. Il faut bien comprendre qu'il s'agit juste d'une représentation des données pour une exploitation visuelle. Autrement dit, les données ne…

~~ Fin de l'extrait ~~

Déclencheurs et procédures stockées

Mis à jour le Les déclencheurs et les procédures stockées sont des fonctionnaliéts avancées des BDD. Elles demandent une certaines maitrise, et ne sont pas très utilisés dans les projets standard. De plus, ce genre de manipulation demande une certaines aisance avec l'algorithmie et les opérateurs liés à la programmation.

Il y a beaucoup de… ~~ Fin de l'extrait ~~

Migrations

Mis à jour le

Parler de la notions de migration (avoir toute sa bdd dans des fichiers de migrations) + versionning