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.

Previous
Mise à jour de données dans une table