MySQL
Récupèration de données dans une table
Voici le chapitre Récupèration de données dans une table — la partie SELECT, du simple affichage aux filtres complexes avec WHERE.
🔎 Récupèration de données dans une table
(SELECT — colonnes, WHERE, AND/OR, LIKE, IN, BETWEEN, REGEXP, ORDER BY, LIMIT, GROUP BY)
La base est simple :
SELECT colonnes
FROM NomTable
WHERE condition;
Mais la vraie puissance, c’est tout ce que tu peux faire dans le WHERE. On couvre les formats utiles et les cas réels.
⸻
🟩 1. Sélectionner toutes les données
SELECT *
FROM User;
Utile pour inspecter rapidement une table.
🟦 2. Sélectionner seulement certaines colonnes
SELECT UserID, Nom, Email
FROM User;
Moins lourd, plus lisible.
🟧 3. Filtrer par égalité (WHERE simple)
SELECT *
FROM User
WHERE UserID = 12;
Le cas le plus courant.
🟨 4. Filtrer avec plusieurs conditions (AND / OR)
SELECT *
FROM User
WHERE Grade = 'admin'
AND Actif = 1;
SELECT *
FROM User
WHERE Ville = 'Paris'
OR Ville = 'Lyon';
Astuce : utilise des parenthèses quand tu mixes AND et OR.
🟥 5. Cibler des mots-clés (LIKE)
Rechercher tous les utilisateurs avec un email Gmail :
SELECT *
FROM User
WHERE Email LIKE '%@gmail.com';
Rechercher un mot dans un titre :
SELECT *
FROM Video
WHERE Titre LIKE '%robot%';
🟪 6. Cibler avec un motif avancé (REGEXP)
SELECT *
FROM User
WHERE Email REGEXP '^[a-z]+@[a-z]+\\.com$';
Idéal pour des formats précis.
🟫 7. Sélectionner plusieurs éléments (IN)
SELECT *
FROM User
WHERE UserID IN (3, 7, 12, 24);
Ou avec des valeurs texte :
SELECT *
FROM Video
WHERE Genre IN ('Action', 'SF', 'Horreur');
🟨 8. Entre deux valeurs (BETWEEN)
SELECT *
FROM Video
WHERE Duree BETWEEN 300 AND 900;
SELECT *
FROM User
WHERE CreateDate BETWEEN '2025-01-01' AND '2025-12-31';
🟧 9. Vérifier une valeur manquante (IS NULL)
SELECT *
FROM User
WHERE Email IS NULL;
SELECT *
FROM User
WHERE Email IS NOT NULL;
🟩 10. Exclure des résultats (NOT, !=, <>)
SELECT *
FROM User
WHERE Grade != 'admin';
SELECT *
FROM User
WHERE Grade <> 'admin';
SELECT *
FROM User
WHERE NOT Grade = 'admin';
🟦 11. Trier les résultats (ORDER BY)
SELECT *
FROM User
ORDER BY CreateDate DESC;
🟪 12. Limiter le nombre de lignes (LIMIT / OFFSET)
SELECT *
FROM User
ORDER BY CreateDate DESC
LIMIT 20;
Pagination simple :
SELECT *
FROM User
ORDER BY CreateDate DESC
LIMIT 20 OFFSET 40;
🟫 13. Agréger et filtrer des groupes (GROUP BY / HAVING)
Nombre d’utilisateurs par ville :
SELECT Ville, COUNT(*) AS Total
FROM User
GROUP BY Ville;
Filtrer les groupes (HAVING) :
SELECT Ville, COUNT(*) AS Total
FROM User
GROUP BY Ville
HAVING COUNT(*) >= 10;
🟧 14. Requête avec jointure (JOIN)
Afficher les vidéos avec le nom de l’utilisateur :
SELECT v.Titre, u.Nom
FROM Video v
JOIN User u ON v.UserID = u.UserID
WHERE u.Actif = 1;
🧲 15. Tester avant d’agir
Avant une modification ou une suppression, commence par un SELECT avec le même WHERE :
SELECT *
FROM User
WHERE Grade = 'admin'
AND Actif = 0;
Tu vois exactement ce que ta requête va impacter.
🎯 Conclusion
Avec ça tu maîtrises :
- sélection simple et ciblée
- filtres avancés (LIKE, IN, BETWEEN, REGEXP)
- tri, pagination, regroupements
- jointures utiles
C’est le chapitre de base pour interroger proprement une base MySQL.