Créer une base de données, choisir le moteur, créer des tables avec des colonnes bien typées, puis les modifier (ALTER) ou les supprimer (DROP).
1Situer
Le MLD de Souk Atlas est validé, MySQL est installé. Place au SQL : on crée la base « souk », puis chaque table avec ses colonnes. Choisir le bon type pour chaque colonne (un prix n'est pas un texte, une date n'est pas un nombre) évite beaucoup d'erreurs plus tard.
2Comprendre
CREATE TABLE : une table, des colonnes typées
CREATE TABLE produits crée une table vide : un tableau sans lignes.
1 / 5
Créer la base de données
CREATEDATABASE souk CHARACTER SET utf8mb4; -- utf8mb4 : accents et emojisUSE souk; -- on travaille désormais dans soukSHOW TABLES; -- vide pour l'instant
Choisir le moteur
On l’indique à la fin du CREATE TABLE : ENGINE=InnoDB. Sauf raison particulière, on garde InnoDB.
Créer une table et typer ses colonnes
Type
Pour
Exemple
INT
nombres entiers
stock, quantité, identifiant
DECIMAL(8,2)
nombres exacts à virgule (8 chiffres dont 2 après la virgule)
prix : 1200.00
VARCHAR(n)
texte court, au plus n caractères
nom, email, téléphone
TEXT
texte long
description
DATE / DATETIME
date / date et heure
'2025-03-09', '2025-03-09 14:30:00'
BOOLEAN
vrai / faux (0 ou 1)
actif
ENUM('a','b')
une valeur dans une liste fixe
statut
CREATETABLE produits (
id INTAUTO_INCREMENTPRIMARYKEY,
nom VARCHAR(80) NOTNULL,
prix DECIMAL(8,2) NOTNULL,
stock INTNOTNULLDEFAULT0
) ENGINE=InnoDB;
Modifier ou supprimer une table
ALTERTABLE produits ADD description TEXT; -- ajouter une colonneALTERTABLE produits MODIFY nom VARCHAR(120) NOTNULL; -- changer son typeALTERTABLE produits RENAMECOLUMN stock TO quantite; -- la renommerALTERTABLE produits DROPCOLUMN description; -- la supprimerDROPTABLE produits; -- supprimer la table
Exemple simple
Les étagères étiquetées
Une table est une étagère avec des cases étiquetées : la case « prix » n'accepte que des nombres, la case « date » que des dates. Le type de la colonne, c'est l'étiquette.
CREATETABLE villes (
id INTAUTO_INCREMENTPRIMARYKEY,
nom VARCHAR(50) NOTNULL
);
Exemple simple
Le ticket numéroté
AUTO_INCREMENT fonctionne comme le distributeur de tickets à la banque : chaque nouvelle ligne reçoit le numéro suivant, sans qu'on ait à le choisir.
Publicité
3Manipuler
La base est vide. Créez la table categories, puis la table produits demandée. Le panneau Tables à gauche montre le résultat. Exécutez avec le bouton ou Ctrl + Entrée.
Pas à pas dans le lab ↗La base de départ se crée dans votre navigateur (moteur SQL d’environ 700 Ko, chargé une fois).
Résultat
Le résultat de chaque requête s'affichera ici.
Consignes 0 / 6
La table produits existe
produits.id est la clé primaire
nom est obligatoire (NOT NULL)
prix est un DECIMAL
stock vaut 0 par défaut
Ajoutez une colonne description (TEXT) avec ALTER TABLE
4Pratiquer
Exercice 1 · Choisir les types
Donnez le type MySQL de : un numéro de téléphone marocain, une date de naissance, un prix en dirhams, un nombre de pièces, une description longue.
Voir le corrigé
téléphone : VARCHAR(15) (pas INT : le 0 du début se perdrait,
et on ne calcule pas avec)
naissance : DATE
prix : DECIMAL(8,2) (exact, pas FLOAT)
pièces : INT
description : TEXT
Exercice 2 · Écrire la table clients
Écrivez CREATE TABLE clients : id auto-incrémenté, nom et prénom obligatoires (50), email (100), date_inscription (date obligatoire).
Voir le corrigé
CREATETABLE clients (
id INTAUTO_INCREMENTPRIMARYKEY,
nom VARCHAR(50) NOTNULL,
prenom VARCHAR(50) NOTNULL,
email VARCHAR(100),
date_inscription DATENOTNULL
) ENGINE=InnoDB;
Exercice 3 · Modifier une table
Ajoutez une colonne telephone à clients, agrandissez nom à 80 caractères, puis renommez la table en client.