Lorsque l’on débute avec MySQL, on apprend très vite à créer des tables, insérer quelques données et faire des petites requêtes. C’est déjà une grande victoire. Pourtant, au bout de quelques heures d’apprentissage, un constat revient souvent : vos requêtes vous donnent uniquement les données brutes, sans aucun traitement ni calcul. Un peu comme si vous alliez au marché et que l’on vous donnait des sacs remplis d’ingrédients, mais sans recette pour en faire un bon plat. C’est justement ici que les fonctions MySQL entrent en jeu : Il existe une fonction MySQL quasiment pour chaque tâches !
- Apprendre à utiliser les fonctions MySQL pour obtenir des informations utiles à partir de vos données et gagner du temps dans vos analyses.
- Comprendre comment transformer, calculer et nettoyer vos données directement dans vos requêtes pour gagner en efficacité.
- Découvrir des exemples concrets et des combinaisons de fonctions pour créer des statistiques lisibles et exploitables immédiatement.
Une fonction MySQL transforme, calcule, analyse et enrichis vos données. En comprenant comment fonctionnent COUNT, NOW, CONCAT, AVG, SUM, UPPER, et toutes les autres, vous allez découvrir une nouvelle façon d’utiliser vos bases de données MySQL : plus de pouvoir, plus de précision, plus de résultats utiles.
Dans ce tutoriel, nous allons prendre le temps d’apprendre ces fonctions MySQL essentielles, pas à pas, avec un vocabulaire simple, des exemples concrets et des explications que vous pourrez réutiliser dans vos propres projets. Peu importe votre niveau, vous repartirez avec des connaissances solides, prêtes à être appliquées dès maintenant.
- Comprendre ce qu'est une fonction MySQL
- Les fonctions MySQL de calcul sur les données
- Les fonctions MySQL pour manipuler du texte
- Les fonctions MySQL liées au temps
- Manipuler et analyser les dates avec MySQL
- Les fonctions MySQL pour gérer les valeurs manquantes
- Travailler avec les nombres dans MySQL
- Extraire et découper du texte dans MySQL
- Des conditions dans une requête avec IF
- Combiner plusieurs fonctions MySQL pour des résultats puissants
- Pourquoi les fonctions MySQL sont indispensables au quotidien
- Tableau complet des fonctions MySQL à connaître quand on débute
- Exemple complet et concret
- Une nouvelle manière de voir les bases de données
Comprendre ce qu’est une fonction MySQL
Avant d’entrer dans le vif du sujet, clarifions un point très important : qu’est-ce qu’une fonction MySQL exactement ?
Une fonction est tout simplement un outil intégré dans MySQL qui vous permet de manipuler vos données directement dans une requête. Elle peut servir à :
- compter un nombre d’enregistrements
- calculer une somme ou une moyenne
- transformer un texte
- formater une date
- vérifier une condition
- rassembler plusieurs valeurs en une seule
On peut donc dire que les fonctions MySQL sont à la base de données ce que les super-pouvoirs sont aux super-héros. Les données sont déjà utiles, mais avec les fonctions, elles deviennent carrément impressionnantes.
Les fonctions MySQL de calcul sur les données
Commençons par les fonctions les plus utilisées lorsque l’on souhaite calculer quelque chose à partir d’un ensemble de lignes.
La fonction MySQL COUNT : compter en un clin d’œil
La fonction Mysql COUNT() sert simplement à compter le nombre d’enregistrements correspondant à un critère.
Exemple classique : combien d’utilisateurs inscrits dans la table users ?
SELECT COUNT(*) AS total_utilisateurs
FROM users;Vous obtenez un seul chiffre. Ce chiffre est souvent utilisé dans les tableaux de bord, les statistiques de site web ou encore les rapports d’activité.
La première fois que j’ai découvert COUNT(), j’ai cru que c’était complexe alors qu’une seule ligne de code suffit.
On peut filtrer le comptage, par exemple uniquement les utilisateurs actifs :
SELECT COUNT(*) AS utilisateurs_actifs
FROM users
WHERE is_active = 1;Une seule fonction, mais un monde de statistiques.
La fonction MySQL SUM : additionner des valeurs rapidement
La fonction MySQL SUM() additionne toutes les valeurs d’une colonne numérique.
Imaginons une table commandes contenant un montant pour chaque achat. Pour calculer les revenus totaux :
SELECT SUM(montant) AS chiffre_affaires
FROM commandes;Si vous gérez une boutique en ligne, cette fonction devient vite votre meilleure amie.
On peut également combiner SUM() avec un filtre, par exemple les revenus du mois courant.
SELECT SUM(montant) AS revenus_mois
FROM commandes
WHERE MONTH(date) = MONTH(NOW())
AND YEAR(date) = YEAR(NOW());Et là, vous êtes capable de générer un vrai indicateur de performance pour votre activité.
La fonction MySQL AVG : calculer la moyenne
La fonction MySQL AVG() calcule une moyenne.
Exemple : connaître le prix moyen des produits vendus.
SELECT AVG(montant) AS prix_moyen
FROM commandes;Attention aux pièges : si une colonne contient des valeurs NULL, MySQL les ignore automatiquement dans le calcul, ce qui peut fausser une moyenne si l’on ne s’en rend pas compte.
MAX et MIN : la valeur la plus haute et la plus basse
Ces deux fonctions permettent de récupérer les extrêmes.
SELECT MAX(montant) AS plus_grosse_commande
FROM commandes;
SELECT MIN(montant) AS plus_petite_commande
FROM commandes;Elles sont parfaites pour repérer les records, les valeurs anormales et les tendances.
Les fonctions MySQL pour manipuler du texte
Les données textuelles constituent une grande partie du web : noms, adresses, descriptions, etc. MySQL propose donc des fonctions dédiées pour modifier, nettoyer ou assembler des chaînes de caractères.
La fonction MySQL CONCAT : assembler des morceaux de texte
CONCAT() permet de fusionner plusieurs informations dans une seule colonne.
SELECT CONCAT(prenom, ' ', nom) AS nom_complet
FROM utilisateurs;C’est particulièrement utile pour afficher un nom complet dans une interface, ou pour créer des références automatiques comme :
SELECT CONCAT('CMD-', id) AS reference_commande
FROM commandes;UPPER et LOWER : changer la casse
Parfois, on doit uniformiser les données : UPPER() met toutes les lettres en majuscules, LOWER() en minuscules.
SELECT UPPER(ville), LOWER(ville)
FROM clients;Imaginez un formulaire rempli à la va-vite par un utilisateur : « MArseille ». Grâce à ces fonctions, vous harmonisez tout, sans disputes avec l’utilisateur sur son clavier capricieux.
La fonction MySQL LENGTH : vérifier la taille d’un texte
Pour connaître le nombre de caractères dans une donnée (pratique pour vérifier un pseudo trop long par exemple) :
SELECT LENGTH(pseudo)
FROM users;Si un pseudonyme dépasse la limite autorisée, cela se voit immédiatement.
REPLACE : remplacer du texte à la volée
Pour modifier une partie d’une chaîne directement dans une requête, on utilise la fonction REPLACE() :
SELECT REPLACE(description, 'ancien', 'nouveau')
FROM produits;Très utile lorsqu’on met à jour des termes dans une base de données existante.
Les fonctions MySQL liées au temps
Gérer les dates et les heures est indispensable dans pratiquement tous les projets.
La fonction MySQL NOW : obtenir la date et l’heure actuelles
La fonction NOW() renvoie l’instant présent reconnu par votre serveur MySQL.
INSERT INTO commandes (date_commande)
VALUES (NOW());Chaque commande enregistrée est ainsi automatiquement associée à la date du moment.
Vous pouvez aussi afficher l’heure actuelle dans une requête :
SELECT NOW() AS maintenant;CURDATE, CURTIME : date ou heure uniquement
Si vous ne souhaitez récupérer que la date ou l’heure :
SELECT CURDATE() AS aujourd_hui;
SELECT CURTIME() AS heure_actuelle;YEAR, MONTH, DAY : extraire une partie de la date
Exemple pour récupérer l’année d’inscription d’un utilisateur :
SELECT YEAR(date_inscription) AS annee
FROM users;Même chose pour organiser les ventes par mois et par jour.
Manipuler et analyser les dates avec MySQL
Les dates peuvent vite devenir un casse-tête, surtout lorsque l’on souhaite faire des statistiques. Heureusement, MySQL met à notre disposition de nombreuses fonctions pour les manipuler.
La fonction MysQL DATEDIFF : calculer un nombre de jours
LA fonction DATEDIFF() renvoie le nombre de jours entre deux dates.
Imaginons que vous vouliez savoir depuis combien de jours un utilisateur s’est inscrit :
SELECT pseudo,
DATEDIFF(NOW(), date_inscription) AS jours_depuis_inscription
FROM users;Si vous voyez un 0, cela signifie une inscription toute fraîche.
LA fonction MySQL DATE_FORMAT : afficher les dates proprement
Lorsqu’une date est affichée en base de données, elle apparaît souvent sous la forme 2025-12-09 14:33:21. Ce n’est pas très lisible pour un utilisateur français.
Avec DATE_FORMAT(), vous pouvez choisir le format d’affichage :

Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?SELECT DATE_FORMAT(NOW(), '%d/%m/%Y') AS date_format_fr;Vous obtiendrez quelque chose comme : 09/12/2025
Parfait pour vos exports Excel ou vos pages web.
Voici quelques codes utiles :
- %d : jour
- %m : mois
- %Y : année sur 4 chiffres
- %H : heure
- %i : minutes
MySQL vous laisse ainsi créer des formats entièrement personnalisés.
Les fonctions MySQL pour gérer les valeurs manquantes
Les bases de données peuvent contenir des valeurs NULL. C’est normal, mais cela peut bloquer certaines opérations. MySQL nous offre donc des solutions pour gérer ces champs vides intelligemment.
La fonction MySQL IFNULL : remplacer une valeur NULL par autre chose
Si une colonne est NULL, on peut afficher une valeur alternative. Par exemple, on peut afficher « Non renseigné » lorsqu’un numéro de téléphone est absent.
SELECT IFNULL(telephone, 'Non renseigné') AS tel
FROM clients;Sans cela, l’affichage serait vide et on ne saurait pas si c’est un oubli ou un bug.
COALESCE : l’alternative plus puissante
La fonction MySQL COALESCE() fait la même chose qu’IFNULL(), mais en mieux, car elle teste plusieurs colonnes dans un ordre de priorité.
SELECT COALESCE(telephone, mobile, 'Aucun contact') AS contact
FROM clients;On va donc vérifier :
- d’abord la colonne téléphone
- puis mobile
- et enfin afficher un texte si tout est NULL
Parfait pour travailler avec des données incomplètes.
Travailler avec les nombres dans MySQL
La fonction MySQL ROUND : arrondir les nombres
Très fréquent : arrondir un prix, un pourcentage, ou un résultat mathématique.
SELECT ROUND(AVG(montant), 2) AS moyenne_arrondie
FROM commandes;Ici, le paramètre 2 signifie deux chiffres après la virgule.
La fonction MySQL ABS : obtenir une valeur positive
La fonction ABS() supprime le signe négatif d’un nombre. Il s’agit donc d’obtenir la valeur absolue. Très utilisé pour les statistiques ou les distances.
SELECT ABS(valeur) AS valeur_positive
FROM mesures;POW et SQRT : puissance et racine carrée
Ce sont les petites touches mathématiques de MySQL.
SELECT POW(2, 3) AS puissance; -- Résultat : 8
SELECT SQRT(25) AS racine; -- Résultat : 5Même si elles ne servent pas tous les jours, elles sont très utiles en calcul scientifique.
Extraire et découper du texte dans MySQL
La fonction MySQL SUBSTRING : récupérer une partie du texte
Parfois, une seule partie du texte nous intéresse. Par exemple, récupérer uniquement les 3 premières lettres d’un pays :
SELECT SUBSTRING(pays, 1, 3) AS code
FROM clients;1= position de départ3= nombre de caractères
Si vous stockez des références comme “CMD-2025-0042”, vous pouvez extraire l’année :
SELECT SUBSTRING(reference, 5, 4) AS annee
FROM commandes;LEFT et RIGHT : découper sur les bords
La fonction LEFT() prend les caractères situés au début et RIGHT() ceux à la fin.
SELECT LEFT(nom, 1) AS initiale
FROM users;ou
SELECT RIGHT(reference, 4) AS numero
FROM commandes;Très utile pour des codes structurés.
Des conditions dans une requête avec IF
La fonction IF() ajoute une logique conditionnelle dans votre requête SQL. Si vous souhaitez afficher si un utilisateur est « Actif » ou « Inactif » selon un champ boolean.
SELECT pseudo,
IF(is_active = 1, 'Actif', 'Inactif') AS statut
FROM users;Avec ça, votre base vous raconte l’histoire au lieu de vous donner des chiffres bruts. On peut même combiner plusieurs fonctions MySQL au sein de IF(), ce qui ouvre des possibilités intéressantes.
Pour aller plus loin : Les types de données MySQL
Combiner plusieurs fonctions MySQL pour des résultats puissants
Les fonctions MySQL ne sont pas faites pour être utilisées seules. Leur vraie magie apparaît lorsque vous les combinez entre elles.
Par exemple, pour obtenir le nombre d’inscriptions du mois courant et l’afficher avec un message selon le nombre :
SELECT
IF(
COUNT(*) > 50,
CONCAT('Super mois ! ', COUNT(*), ' nouvelles inscriptions'),
CONCAT('Seulement ', COUNT(*), ' inscrits ce mois-ci')
) AS resume_stats
FROM users
WHERE MONTH(date_inscription) = MONTH(NOW())
AND YEAR(date_inscription) = YEAR(NOW());Ici, nous utilisons :
- COUNT()
- IF()
- CONCAT()
- NOW()
- YEAR() et MONTH()
Tout cela dans une seule requête. Et le résultat devient concret et lisible par tout le monde.
Combiner les fonctions, c’est comme cuisiner avec plusieurs ingrédients : une fonction seule donne un goût… plusieurs donnent un plat.
Un adage célèbre dit que « Si une requête ne fait pas peur au premier regard, alors elle manque de magie. ». Lorsque vous découvrirez la puissance des fonctions imbriquées, vous serez sans doute fiers de produire des requêtes qui font lever un sourcil à vos collègues.
Pourquoi les fonctions MySQL sont indispensables au quotidien
Les fonctions MySQL permettent :
- d’éviter d’importer toutes les données dans votre code pour les manipuler ensuite
- de réduire l’utilisation de ressources
- d’améliorer les performances
- de simplifier vos analyses
- de rendre vos données lisibles et compréhensibles
Sans fonctions, chaque donnée demanderait un traitement manuel interminable. Avec elles, un serveur entier travaille pour vous en quelques millisecondes.
Et lorsqu’un utilisateur clique sur un bouton “Statistiques”, il ne se doute pas qu’en coulisses, COUNT(), DATEDIFF() et SUM() rédigent un rapport en un clin d’œil.
Tableau complet des fonctions MySQL à connaître quand on débute
Pour finir, voici un tableau clair et complet que vous pourrez garder en référence. Il regroupe toutes les fonctions MySQL essentielles abordées dans ce guide, classées par catégorie.
| Catégorie | Fonction MySQL | Rôle / Explication | Exemple |
|---|---|---|---|
| Calcul sur données | COUNT() | Compter le nombre d’enregistrements | SELECT COUNT(*) FROM users; |
| Calcul sur données | SUM() | Faire l’addition d’une colonne numérique | SELECT SUM(montant) FROM commandes; |
| Calcul sur données | AVG() | Calculer une moyenne | SELECT AVG(age) FROM clients; |
| Calcul sur données | MAX() | Récupérer la plus grande valeur | SELECT MAX(prix) FROM produits; |
| Calcul sur données | MIN() | Récupérer la plus petite valeur | SELECT MIN(prix) FROM produits; |
| Texte | CONCAT() | Fusionner plusieurs chaînes de texte | SELECT CONCAT(nom,' ',prenom) FROM users; |
| Texte | UPPER() | Mettre en majuscules | SELECT UPPER(ville) FROM clients; |
| Texte | LOWER() | Mettre en minuscules | SELECT LOWER(ville) FROM clients; |
| Texte | LENGTH() | Compter le nombre de caractères | SELECT LENGTH(pseudo) FROM users; |
| Texte | REPLACE() | Remplacer du texte dans une chaîne | SELECT REPLACE(description,'ancien','nouveau') FROM produits; |
| Texte | SUBSTRING() | Extraire une portion d’un texte | SELECT SUBSTRING(reference,5,4) FROM commandes; |
| Texte | LEFT() | Récupérer le début d’un texte | SELECT LEFT(nom,1) FROM users; |
| Texte | RIGHT() | Récupérer la fin d’un texte | SELECT RIGHT(reference,4) FROM commandes; |
| Dates | NOW() | Obtenir date et heure actuelles | SELECT NOW(); |
| Dates | CURDATE() | Obtenir seulement la date du jour | SELECT CURDATE(); |
| Dates | CURTIME() | Obtenir seulement l’heure actuelle | SELECT CURTIME(); |
| Dates | YEAR() | Extraire l’année dans une date | SELECT YEAR(date_inscription) FROM users; |
| Dates | MONTH() | Extraire le mois dans une date | SELECT MONTH(date_inscription) FROM users; |
| Dates | DAY() | Extraire le jour dans une date | SELECT DAY(date_inscription) FROM users; |
| Dates | DATEDIFF() | Calculer le nombre de jours entre deux dates | SELECT DATEDIFF(NOW(),date) FROM commandes; |
| Dates | DATE_FORMAT() | Formater une date selon vos besoins | SELECT DATE_FORMAT(NOW(),'%d/%m/%Y'); |
| Valeurs manquantes | IFNULL() | Remplacer un NULL par une valeur | SELECT IFNULL(telephone,'Non renseigné'); |
| Valeurs manquantes | COALESCE() | Remplacer un NULL, mais avec plusieurs options | SELECT COALESCE(telephone,mobile,'Aucun contact'); |
| Nombres | ROUND() | Arrondir un nombre | SELECT ROUND(prix,2) FROM produits; |
| Nombres | ABS() | Rendre une valeur positive | SELECT ABS(chiffre) FROM stats; |
| Nombres | POW() | Faire une puissance | SELECT POW(2,3); |
| Nombres | SQRT() | Faire une racine carrée | SELECT SQRT(16); |
| Conditions | IF() | Ajouter une logique conditionnelle dans une requête | SELECT IF(is_active, 'Actif', 'Inactif') FROM users; |
Vous avez désormais sous les yeux une boîte à outils prête à l’emploi pour manipuler vos données de manière rapide, efficace et surtout professionnelle.
Exemple complet et concret
Pour vous aider à comprendre comment et pourquoi on combine les fonctions MySQL, voici un exemple à réutiliser. Nous allons générer une petite statistique intelligente issue des commandes d’une boutique en ligne.
Objectif : afficher un résumé avec le chiffre d’affaires du mois, arrondi à 2 décimales, accompagné d’un message sympathique.
SELECT
CONCAT(
'Ce mois-ci : ',
ROUND(SUM(montant), 2),
' euros de chiffre d''affaires en ',
COUNT(*),
' commandes.'
) AS resume_ventes
FROM commandes
WHERE MONTH(date_commande) = MONTH(NOW())
AND YEAR(date_commande) = YEAR(NOW());Prenez le temps de bien comprendre cette requête. Grâce à cette unique requête MySQL, vous obtenez une phrase lisible, directe et exploitable dans un tableau de bord.
C’est ça, la vraie puissance des fonctions MySQL : transformer vos chiffres en informations.
Une nouvelle manière de voir les bases de données
Vous venez de franchir une grande étape dans votre apprentissage MySQL. Vous ne regarderez plus jamais une base de données de la même façon. Vos données ne sont plus de simples chiffres ou des lignes empilées dans un tableau. Elles deviennent vivantes, calculées, interprétées, améliorées.
Comprendre les fonctions MySQL change profondément votre manière de travailler. Vous gagnez du temps, vous gagnez en efficacité, et surtout, vous gagnez en confiance. Vous savez désormais compter, analyser, filtrer, formater, corriger et présenter vos données avec élégance, directement depuis votre base.
Il y a encore beaucoup à découvrir : des fonctions pour gérer du JSON, pour faire du chiffrement, pour créer des expressions régulières… et même pour manipuler de la géolocalisation. Mais vous possédez désormais les fondations les plus importantes, celles que l’on retrouve dans absolument tous les projets MySQL, du petit blog à la plateforme à plusieurs millions d’utilisateurs.
Continuez à expérimenter. Testez, combinez, osez. MySQL deviendra de plus en plus votre allié, prêt à répondre à vos besoins en une fraction de seconde.
Et qui sait… peut-être qu’un jour, ce sera vous qui montrerez à quelqu’un que COUNT() n’est pas une formule magique mais simplement le début d’une grande aventure.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
