Chapitre 0Projet SunuShop

Introduction — Pourquoi les bases de données

Le problème sans BDD. Ce qu'est une BDD relationnelle. SQL le langage universel (DDL, DML, DCL). MySQL et phpMyAdmin. Installer XAMPP. Créer la base sunushop.

Concepts Théoriques

Imaginez que vous gérez une boutique en ligne avec un fichier Excel. Les clients sont dans un onglet, les produits dans un autre, les commandes dans un troisième. Un client change d'adresse — vous devez la modifier dans l'onglet clients ET dans chaque commande passée. Un produit est supprimé — les commandes qui le référencent sont cassées. Deux vendeurs modifient le fichier en même temps — les données se mélangent. Un stagiaire supprime une colonne par erreur — 6 mois de données disparaissent.

Ce cauchemar est le quotidien de beaucoup d'entreprises qui gèrent leurs données sans base de données. Et c'est exactement ce que SQL et MySQL résolvent.

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

Une base de données relationnelle stocke les informations dans des tables — des structures rigides avec des colonnes (les champs) et des lignes (les enregistrements). Pensez à un tableau très organisé : chaque colonne a un type précis (texte, nombre, date), et chaque ligne est un enregistrement complet.

La vraie puissance vient des relations entre les tables. Au lieu de stocker "Vêtements & Tissus" dans chaque produit (ce qui crée de la redondance — si le nom change, il faut modifier 500 lignes), on stocke un numéro de catégorie (category_id = 1) qui pointe vers la table des catégories. L'information existe à un seul endroit. C'est le principe de normalisation — chaque donnée n'existe qu'une fois.

Le mot "relationnelle" vient de la théorie mathématique des relations (ensembles), mais en pratique retenez : les données sont dans des tables, les tables sont liées entre elles par des identifiants.

SQL — le langage universel des données

SQL (Structured Query Language, prononcé "S-Q-L" ou "sequel") est le langage pour communiquer avec une base de données. Créé en 1974, c'est un des plus anciens langages encore massivement utilisés. Et pour cause : c'est le standard universel. Que vous utilisiez MySQL, PostgreSQL, SQLite, Oracle, ou SQL Server — le SQL de base est le même. Apprenez-le une fois, utilisez-le partout.

SQL se divise en catégories selon ce que vous faites :

DDL (Data Definition Language) — définir la structure : CREATE TABLE crée une table, ALTER TABLE la modifie, DROP TABLE la supprime. C'est l'architecture.

DML (Data Manipulation Language) — manipuler les données : SELECT lit des données, INSERT en ajoute, UPDATE en modifie, DELETE en supprime. C'est le quotidien — 80% de votre SQL sera du DML.

DCL (Data Control Language) — gérer les droits d'accès : GRANT donne des permissions, REVOKE les retire. C'est la sécurité.

Au quotidien, vous utiliserez surtout SELECT (lire), INSERT (ajouter), UPDATE (modifier) et DELETE (supprimer).

MySQL — pourquoi ce SGBD

MySQL est le système de gestion de base de données (SGBD) le plus utilisé au monde pour le web. Créé en 1995, il propulse WordPress, Wikipedia, Facebook (à ses débuts), et des millions de sites. Il est gratuit (licence GPL), rapide, fiable, et surtout — supporté par TOUS les hébergeurs web, y compris les hébergeurs africains les moins chers (InfinityFree, 000webhost, Hostinger).

C'est un choix pragmatique : quand vous déploierez votre projet PHP ou Laravel, MySQL sera disponible partout. PostgreSQL est techniquement supérieur sur certains points (types avancés, JSON natif, conformité SQL), mais MySQL domine le marché de l'hébergement web abordable.

phpMyAdmin — votre interface visuelle

phpMyAdmin est une application web qui vous permet de gérer MySQL via votre navigateur. Vous pouvez créer des bases, des tables, exécuter des requêtes SQL, importer/exporter des données, et visualiser la structure — tout avec des clics et des formulaires. C'est installé automatiquement avec XAMPP.

Mais attention : ce cours vous apprend le SQL en écrivant des requêtes, pas en cliquant sur des boutons. phpMyAdmin est un outil pratique pour visualiser et vérifier, mais la compétence réelle est de savoir écrire du SQL. En entreprise, vous n'aurez souvent accès qu'à un terminal MySQL.

Installer MySQL

Option 1 — XAMPP (recommandé pour les débutants) Téléchargez XAMPP sur apachefriends.org. Installez avec les options par défaut. Démarrez Apache et MySQL depuis le panneau de contrôle. Ouvrez http://localhost/phpmyadmin dans votre navigateur. Si la page s'affiche, MySQL fonctionne. Apache est nécessaire car phpMyAdmin est une application web PHP.

Option 2 — MySQL Community Server (pour les plus avancés) Téléchargez MySQL sur dev.mysql.com/downloads/mysql. Installez avec le mot de passe root que vous choisissez. Utilisez MySQL Workbench (interface graphique officielle) ou le terminal : mysql -u root -p.

Option 3 — En ligne (sans installation) db-fiddle.com ou sqliteonline.com permettent d'écrire et exécuter du SQL directement dans le navigateur. Pratique pour tester rapidement, mais limité pour les exercices avancés.

Comment exécuter du SQL

Dans phpMyAdmin : cliquez sur l'onglet "SQL" en haut → tapez votre requête dans la zone de texte → cliquez "Exécuter". Le résultat s'affiche en dessous sous forme de tableau.

Dans le terminal : tapez mysql -u root -p, entrez votre mot de passe, puis tapez vos requêtes directement.

Deux règles syntaxiques essentielles :

  • Chaque requête SQL se termine par un point-virgule (;). Sans le point-virgule, MySQL attend la suite.
  • Les mots-clés SQL ne sont PAS sensibles à la casse : SELECT, select, et SeLeCt fonctionnent tous. Mais la convention professionnelle est de les écrire en MAJUSCULES pour les distinguer visuellement des noms de tables et colonnes : SELECT name FROM products WHERE price > 5000;

> Important : SQL est un langage déclaratif — vous décrivez CE QUE vous voulez, pas COMMENT l'obtenir. "Donne-moi les produits dont le prix est supérieur à 5000, triés par prix décroissant" — et MySQL se débrouille pour trouver la façon optimale de le faire. C'est très différent de JavaScript ou PHP où vous écrivez chaque étape.