SQL - Fonctions Numériques

Bienvenue, futurs magiciens SQL ! Aujourd'hui, nous plongeons dans le monde magique des fonctions numériques de SQL. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je serai votre guide amical à travers cette aventure. À la fin de ce tutoriel, vous manipulerez les nombres comme un pro !

SQL - Numeric Functions

Quelles sont les Fonctions Numériques de SQL ?

Imaginez que vous êtes un cuisinier dans une cuisine. Vous avez divers outils pour couper, trancher et hacher vos ingrédients. Les fonctions numériques de SQL sont comme ces outils de cuisine, mais pour les nombres. Elles nous aident à effectuer des calculs et des transformations sur les données numériques de notre base de données.

Fonctions Numériques Courantes de SQL

Jetons un œil à certaines des fonctions numériques les plus utiles dans SQL. J'ai préparé un tableau pratique pour vous référer :

Fonction Description Exemple
ABS() Retourne la valeur absolue ABS(-5) = 5
ROUND() Arrondit un nombre à un nombre spécifié de décimales ROUND(3.14159, 2) = 3.14
CEILING() Retourne le plus petit entier supérieur ou égal au nombre donné CEILING(3.1) = 4
FLOOR() Retourne le plus grand entier inférieur ou égal au nombre donné FLOOR(3.9) = 3
POWER() Eleve un nombre à la puissance spécifiée POWER(2, 3) = 8
SQRT() Retourne la racine carrée d'un nombre SQRT(16) = 4

Maintenant, explorons chacune de ces fonctions en détail avec quelques exemples pratiques.

La Fonction ABS()

La fonction ABS() retourne la valeur absolue d'un nombre. En termes plus simples, elle enlève le signe négatif s'il y en a un.

SELECT ABS(-10) AS absolute_value;

Cette requête retournera :

absolute_value
--------------
10

Imaginez que vous calculez la différence entre deux températures. Vous ne vous souciez pas si c'est positif ou négatif ; vous voulez juste connaître la grandeur. C'est là que ABS() devient utile !

La Fonction ROUND()

ROUND() est comme ce ami qui toujours arrondit l'addition dans les restaurants. Elle arrondit un nombre à un nombre spécifié de décimales.

SELECT ROUND(3.14159, 2) AS rounded_pi;

Résultat :

rounded_pi
----------
3.14

Cette fonction est super utile lors de la manipulation de monnaies ou lorsque vous devez simplifier de grands nombres pour les rapports.

Les Fonctions CEILING() et FLOOR()

Ces fonctions sont comme les surdoués et les sous-doués du monde des nombres. CEILING() toujours arrondit vers le haut au prochain entier, tandis que FLOOR() toujours arrondit vers le bas.

SELECT CEILING(3.1) AS ceiling_value, FLOOR(3.9) AS floor_value;

Résultat :

ceiling_value | floor_value
--------------+------------
4             | 3

J'aime penser que CEILING() est un optimiste (toujours regardant vers le haut) et FLOOR() un pessimiste (toujours regardant vers le bas). Utilisez-les intelligemment dans vos calculs !

La Fonction POWER()

POWER() est comme donner des superpouvoirs à vos nombres ! Elle élève un nombre à la puissance spécifiée.

SELECT POWER(2, 3) AS two_cubed;

Résultat :

two_cubed
---------
8

Cette fonction est particulièrement utile dans les calculs scientifiques ou lorsque vous devez calculer des intérêts composés (votre futur vous vous en remercie pour avoir appris cela !).

La Fonction SQRT()

SQRT() est la fonction racine carrée. C'est comme trouver le nombre qui, multiplié par lui-même, vous donne le nombre d'origine.

SELECT SQRT(16) AS square_root;

Résultat :

square_root
-----------
4

Fun fact : Les anciens Babyloniens utilisaient une méthode pour calculer les racines carrées qui est étonnamment similaire à ce que font les ordinateurs aujourd'hui !

Mettre Tout Ensemble

Maintenant que nous avons appris ces fonctions individuellement, voyons comment les combiner dans un scénario du monde réel. Imaginez que vous analysez les données de vente pour une petite entreprise.

CREATE TABLE sales (
id INT PRIMARY KEY,
product_name VARCHAR(50),
sale_amount DECIMAL(10, 2),
discount DECIMAL(5, 2)
);

INSERT INTO sales VALUES
(1, 'Widget A', 100.00, 10.50),
(2, 'Gadget B', 75.25, 5.00),
(3, 'Doohickey C', 50.75, 2.25);

SELECT
product_name,
sale_amount,
discount,
ROUND(sale_amount - discount, 2) AS net_sale,
CEILING(POWER(net_sale, 1.05)) AS loyalty_points
FROM
sales;

Cette requête calcule le montant de vente net après rabais et attribue des points de fidélité basés sur une valeur de vente nette légèrement inflationnée. Decomposons :

  1. Nous créons une table et insérons des données échantillons.
  2. Nous utilisons ROUND() pour calculer le montant de vente net à deux décimales.
  3. Nous utilisons POWER() pour légèrement inflationner le montant de vente net (l'élever à la puissance de 1.05).
  4. Finalement, nous utilisons CEILING() pour arrondir les points de fidélité au prochain entier.

Le résultat pourrait ressembler à ceci :

product_name | sale_amount | discount | net_sale | loyalty_points
-------------+-------------+----------+----------+----------------
Widget A     | 100.00      | 10.50    | 89.50    | 115
Gadget B     | 75.25       | 5.00     | 70.25    | 89
Doohickey C  | 50.75       | 2.25     | 48.50    | 60

Conclusion

Félicitations ! Vous avez刚刚 pris vos premiers pas dans le monde des fonctions numériques de SQL. Souvenez-vous, la pratique rend parfait. Essayez de jouer avec ces fonctions en utilisant vos propres données ou exemples. N'ayez pas peur de faire des erreurs - c'est ainsi que nous apprenons !

Dans mes années d'enseignement, j'ai découvert que les étudiants qui expérimentent et s'amusent avec SQL sont ceux qui le maîtrisent vraiment. Alors, allez-y, calculez, arrondissez, et boostez vos données ! Qui sait ? Vous pourriez même découvrir que travailler avec des nombres dans SQL est aussi satisfaisant que résoudre un puzzle difficile ou créer une belle œuvre d'art.

Continuez à coder, continuez à apprendre, et surtout, continuez à vous amuser avec SQL !

Credits: Image by storyset