SQL - Fonctions de type de données : Un guide pour débutants

Salut à toi, futurs magiciens SQL ! Je suis ravi de devenir ton guide sur cette incroyable aventure dans le monde des fonctions de type de données SQL. En tant que quelqu'un qui enseigne l'informatique depuis plus d'une décennie, je peux te dire que maîtriser ces fonctions, c'est comme obtenir des superpouvoirs dans le domaine des bases de données. Alors, mettons nos manches à la pâte et plongeons dedans !

SQL - Datatype Functions

Quelles sont les fonctions de type de données SQL ?

Avant de rentrer dans les détails, comprenons ce avec quoi nous avons affaire. Les fonctions de type de données SQL sont des outils spéciaux qui nous aident à convertir des données d'un type à un autre ou à extraire des informations sur le type de données d'une valeur. Pense à elles comme des sorts magiques qui peuvent transformer tes données en exactement ce dont tu as besoin !

Pourquoi sont-elles importantes ?

Imaginons que tu fais un gâteau ( tien-toi tranquille, je promets que cela a un rapport avec SQL !). Tu as des ingrédients sous différentes formes - des liquides en tasses, des solides en grammes. Pour suivre correctement la recette, tu dois souvent convertir entre ces mesures. C'est exactement ce que font les fonctions de type de données en SQL - elles nous aident à convertir et manipuler les données pour qu'elles soient dans la "forme" correcte pour nos opérations de base de données.

Fonctions de type de données courantes

Explorons quelques-unes des fonctions de type de données les plus couramment utilisées. Je fournirai des exemples pour chacune, et nous les décomposerons ensemble.

1. CAST()

La fonction CAST() est comme un change-forme dans le monde SQL. Elle te permet de convertir une valeur d'un type de données à un autre.

SELECT CAST(25.65 AS INT) AS IntValue;

Cette requête renverra :

IntValue
25

Qu'est-ce qui s'est passé ici ? Nous avons pris le nombre décimal 25.65 et l'avons converti en entier. SQL a joyeusement coupé la partie décimale, laissant 25.

2. CONVERT()

CONVERT() est similaire à CAST(), mais il est spécifique à Microsoft SQL Server et offre quelques fonctionnalités supplémentaires.

SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS USDateFormat;

Cela pourrait renvoyer :

USDateFormat
05/15/2023

Dans cet exemple, nous convertissons la date d'aujourd'hui (GETDATE()) en VARCHAR (chaîne) avec un format de date spécifique aux États-Unis (code 101 pour mm/dd/yyyy).

3. COALESCE()

COALESCE() est comme un ami loyal qui est toujours là pour toi. Il renvoie la première valeur non nulle dans une liste.

SELECT COALESCE(NULL, NULL, 'Hello', NULL, 'World') AS FirstNonNull;

Résultat :

FirstNonNull
Hello

COALESCE() a vérifié chaque valeur de gauche à droite et a renvoyé 'Hello' car c'était la première valeur non nulle qu'il a rencontrée.

4. NULLIF()

NULLIF() est le médiateur en SQL. Il compare deux expressions et renvoie NULL si elles sont égales, sinon il renvoie la première expression.

SELECT NULLIF(10, 10) AS Result1, NULLIF(5, 10) AS Result2;

Cela nous donne :

Result1 Result2
NULL 5

Dans le premier cas, les deux valeurs étaient 10, donc NULLIF() a renvoyé NULL. Dans le second cas, les valeurs étaient différentes, donc il a renvoyé la première valeur, 5.

Applications pratiques

Maintenant, voyons comment ces fonctions peuvent être utiles dans des scénarios du monde réel.

Gérer les valeurs NULL

Imaginons que tu travailles avec une base de données des notes des étudiants, mais certaines notes sont manquantes (NULL). Tu veux calculer la note moyenne, mais les valeurs NULL peuvent gâcher tes calculs. C'est là que COALESCE() intervient :

SELECT AVG(COALESCE(Grade, 0)) AS AverageGrade
FROM StudentGrades;

Cette requête remplace toutes les notes NULL par 0 avant de calculer la moyenne. C'est comme dire : "Si une note est manquante, supposons qu'elle soit 0 pour l'instant."

Nettoyage des données

Disons que tu as une colonne avec des types de données mélangés, et tu veux extraire uniquement les valeurs numériques :

SELECT
OriginalValue,
CASE
WHEN ISNUMERIC(OriginalValue) = 1
THEN CAST(OriginalValue AS FLOAT)
ELSE NULL
END AS CleanedNumericValue
FROM MixedDataTable;

Cette requête vérifie si chaque valeur est numérique. Si oui, elle le convertit en FLOAT. Sinon, elle renvoie NULL. C'est comme avoir une machine de tri qui ne sélectionne que les nombres d'un sac mélangé d'items.

Conclusion

Et voilà, les amis ! Nous avons parcouru le royaume des fonctions de type de données SQL, du change-forme CAST() au loyal COALESCE(). Souviens-toi, ces fonctions sont tes outils pour modeler et façonner les données selon tes besoins. Comme tout bon artisan, plus tu pratiques ces outils, plus tu deviendras habile.

Pour clore, un peu d'humour SQL pour toi : Pourquoi l'administrateur de base de données a-t-il quitté sa femme ? Elle avait des relations à un à plusieurs ! (Je vais me retirer maintenant.)

Continuez à pratiquer, restez curieux, et avant de vous en rendre compte, vous serez capable de caster et de convertir des données comme un pro. Jusqu'à la prochaine fois, bon SQL-ing !

Credits: Image by storyset