🧚 Écoute ! Beekeeper Studio est une interface MySQL rapide, moderne et open source Télécharger
29 avril 2024 Par Matthew Rathbone

Introduction

Aujourd’hui, on va voir comment faire des soustractions dans MySQL, une plateforme populaire de gestion de bases de données relationnelles. Ce tutoriel se concentre sur la soustraction dans MySQL et couvre de nombreux cas, des opérations arithmétiques de base jusqu’à des usages plus complexes comme le calcul d’écarts entre des lignes ou des dates.

À noter : même si beaucoup de concepts SQL sont valables d’un système de gestion de base de données à l’autre, les exemples de cet article sont conçus spécifiquement pour MySQL.

Avant de continuer ta lecture, je voulais te parler de notre client MySQL moderne, Beekeeper Studio. Son éditeur SQL avec autocomplétion te permet de tester ces calculs en un rien de temps, et il est gratuit pour MySQL : télécharge-le ici.

Prérequis

Ce tutoriel suppose que tu connais déjà MySQL. Assure-toi d’avoir MySQL installé et un accès à une base de données où tu peux exécuter des requêtes.

Section 1 : opérations arithmétiques de base dans MySQL

Soustraire des nombres

MySQL prend en charge les opérateurs arithmétiques de base directement dans l’instruction SELECT. Voici comment faire une soustraction simple :

SELECT 15 - 7 AS difference;

Résultat attendu

+------------+
| difference |
+------------+
|          8 |
+------------+

Cette requête soustrait 7 de 15 et nomme le résultat difference.

C’est la façon la plus simple de faire une soustraction dans MySQL. L’opérateur ‘-‘ permet de soustraire directement des nombres, ou de soustraire des valeurs numériques stockées dans différentes colonnes d’un tableau.

Soustraire des colonnes

Pour soustraire deux colonnes d’un tableau MySQL, prenons un tableau nommé financials avec les colonnes revenue et expenses.

SELECT revenue, expenses, (revenue - expenses) AS net_income FROM financials;

Résultat attendu :

+---------+----------+------------+
| revenue | expenses | net_income |
+---------+----------+------------+
| 10000   | 7000     | 3000       |
| 15000   | 12000    | 3000       |
+---------+----------+------------+

Cette requête calcule le revenu net en soustrayant expenses de revenue.

Section 2 : travailler avec les dates

Soustraire des dates

Dans MySQL, soustraire des dates permet de calculer des intervalles, comme le nombre de jours entre deux dates. Pour ça, MySQL fournit la fonction DATEDIFF().

SELECT DATEDIFF('2023-12-31', '2023-01-01') AS days_difference;

Résultat attendu :

+-----------------+
| days_difference |
+-----------------+
|             364 |
+-----------------+

DATEDIFF() renvoie le nombre de jours entre deux dates, ce qui est particulièrement utile pour les calculs financiers et RH.

Soustraire des intervalles de temps

MySQL permet de soustraire des intervalles de temps précis à des dates grâce à la fonction DATE_SUB(). Voici comment soustraire 30 jours à une date donnée :

SELECT DATE_SUB('2023-12-31', INTERVAL 30 DAY) AS new_date;

Résultat attendu :

+------------+
| new_date   |
+------------+
| 2023-12-01 |
+------------+

Section 3 : techniques de soustraction avancées

Calculer des totaux cumulés

Pour illustrer le calcul d’un total cumulé, qui implique une soustraction, prenons un tableau de registre nommé transactions avec les colonnes id, date et amount.

SET @running_total := 0;

SELECT 
  id,
  date,
  amount,
  (@running_total := @running_total - amount) AS running_total
FROM transactions
ORDER BY date;

Résultat attendu :

+----+------------+--------+---------------+
| id | date       | amount | running_total |
+----+------------+--------+---------------+
|  1 | 2023-01-01 | 500    | -500          |
|  2 | 2023-01-02 | 150    | -650          |
+----+------------+--------+---------------+

Cette requête utilise une variable de session pour suivre le total cumulé, en soustrayant chaque montant de transaction l’un après l’autre.

Soustraction MySQL avec des valeurs NULL

N’oublie pas que MySQL traite NULL comme une valeur inconnue. Si tu inclus NULL dans une soustraction, le résultat sera lui aussi NULL. Pour régler ce problème, tu peux utiliser la fonction COALESCE.

SELECT COALESCE(column1, 0) - COALESCE(column2, 0) AS 'result' FROM table_name;

Quand column1 ou column2 contient NULL, la fonction COALESCE le traite comme ‘0’, ce qui permet à la soustraction de renvoyer quand même un résultat exact.

Conclusion

En SQL, toutes les opérations ne sont pas aussi simples qu’elles en ont l’air, et la soustraction en fait partie. La meilleure approche dépend de ce que tu soustrais : des nombres, des colonnes, des dates, ou des calculs plus avancés.

Entraîne-toi sur ces cas de ton côté et expérimente avec d’autres tableaux et noms de colonnes.

Continue d’explorer, continue d’apprendre !

Pour des requêtes plus complexes et des applications concrètes, continue d’explorer la documentation et les fonctionnalités très complètes de MySQL.

Beekeeper Studio est une interface MySQL gratuite et open source

J’utilise Beekeeper Studio pour mon travail sur MySQL depuis peu, et c’est rapidement devenu l’un de mes outils de base de données préférés. L’interface est épurée, moderne et sans distractions, ce qui permet de se concentrer facilement sur les requêtes, sans le fouillis qu’on trouve dans d’autres outils. - Surendra Singh

Beekeeper Studio est un client MySQL rapide, intuitif et facile à utiliser. Il prend aussi en charge plein d’autres bases de données et fonctionne parfaitement sous Windows, Mac et Linux.

La version Linux de Beekeeper est 100% complète : rien de bâclé, aucun compromis sur les fonctionnalités.

Ce que les utilisateurs de MySQL disent de Beekeeper Studio

Beekeeper Beekeeper Still a Newbie

J’ai choisi ce programme après des années passées sur phpMyAdmin, et c’est comme entrer dans un monde de bien meilleure qualité ; ici, j’ai vraiment senti qu’on se soucie sincèrement de l’utilisateur. Le concept, la réalisation, l’expérience au quotidien : je suis sincèrement reconnaissant envers Matthew pour tout cela.

Alex M

Un outil fabuleux, l’IDE le plus pratique que j’aie trouvé jusqu’ici pour administrer des bases Postgres et MySql : ça marche, tout simplement, sans prise de tête :-)