CodeGym /Cours /SQL SELF /Exemples de formatage des données dans des cas réels

Exemples de formatage des données dans des cas réels

SQL SELF
Niveau 5 , Leçon 4
Disponible

Un des scénarios les plus courants quand tu bosses avec des bases de données, c’est de préparer des données pour des rapports. Imagine : tu bosses à la fac, et ton boss (qui, évidemment, ne pige rien à SQL) te demande de sortir une liste d’étudiants avec le prénom et le nom fusionnés, et aussi la date de naissance au format DD-MM-YYYY. La mission est claire : il faut que ça soit joli. Et SQL, c’est notre pote pour ça.

Exemple 1 : Fusionner prénom et nom

On commence par fusionner le prénom (first_name) et le nom (last_name) des étudiants de notre table students.

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name
FROM 
    students;

Qu’est-ce qui se passe ici ?

  • CONCAT() fusionne les chaînes. On ajoute un espace entre le prénom et le nom pour que ce soit plus lisible.
  • Le résultat est stocké dans une nouvelle colonne full_name.

Le résultat peut ressembler à ça :

full_name
Otto Art
Anna Song
Pol Mac

Exemple 2 : Formatage de la date

Maintenant, on va ajouter le formatage de la date de naissance à notre requête.

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students;

Quoi de neuf ici :

  • On utilise la fonction TO_CHAR() sur le champ birth_date.
  • Le format 'DD-MM-YYYY' transforme la date en un format pratique (genre : 25-12-2001).

Résultat :

full_name formatted_birth_date
Otto Art 12-04-1995
Anna Song 03-08-1996
Pol Mac 21-11-1997

Et voilà ! Tu viens de créer un rapport stylé.

Formatage pour l’export de données

Imaginons qu’un de tes collègues veuille exporter les données des commandes en CSV pour bosser dessus dans Excel. Mais les données dans la base sont pas dans le format qu’il veut, et les commerciaux exigent un affichage précis. Par exemple, au lieu du champ total_price qui donne juste le prix, ils veulent le voir comme : $100.00.

Exemple 3 : Transformer les nombres en format monétaire

On prépare les données des commandes de la table orders pour l’export :

SELECT
    order_id,
    TO_CHAR(total_price, 'FM$999,999.00') AS formatted_price
FROM 
    orders;

Qu’est-ce que fait TO_CHAR() ici ?

  • FM (Fill Mode) enlève les espaces en trop.
  • $ ajoute le symbole de la monnaie.
  • 999,999.00 définit le format avec séparateur de milliers et deux décimales.

Résultat :

order_id formatted_price
1 $1,000.00
2 $2,500.50
3 $10.00

Maintenant, ton collègue peut importer ça dans Excel fingers in the nose et te féliciter en réunion.

Exercice final

Là, ça devient fun. On va combiner tout ce que t’as déjà appris.

Mission

Écris une requête pour la table students qui :

  1. Fusionne prénom et nom dans une colonne full_name.
  2. Transforme la date de naissance au format DD-MM-YYYY.
  3. Affiche l’âge de l’étudiant à la date d’aujourd’hui.

La requête ressemblera à ça :

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date,
    DATE_PART('year', AGE(birth_date)) AS age
FROM 
    students;

Nouveaux éléments :

  • AGE(birth_date) renvoie l’intervalle entre aujourd’hui et la date de naissance, mais sous forme d’années, mois et jours.
  • DATE_PART('year', AGE(birth_date)) extrait juste le nombre d’années de cet intervalle.

Résultat :

full_name formatted_birth_date age
Otto Art 12-04-1995 28
Anna Song 03-08-1996 27
Pol Mac 21-11-1997 25

Un rapport comme ça, même les collègues les plus relous seront contents.

Formatage pour des conditions spécifiques

Parfois, on a besoin de formater les données pour créer des conditions ou filtrer. Par exemple, on va sortir les étudiants qui ont leur anniversaire ce mois-ci.

Exemple 4 : Filtrer par mois

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
WHERE 
    DATE_PART('month', birth_date) = DATE_PART('month', CURRENT_DATE);

Comment ça marche ?

  • DATE_PART('month', birth_date) extrait le mois de la date de naissance.
  • CURRENT_DATE donne la date d’aujourd’hui. On en extrait le mois avec DATE_PART().

Combiner formatage et tri

Maintenant, on va tout mélanger et ajouter un tri. Par exemple, on va faire une liste d’étudiants triés par date de naissance.

Exemple 5 : Trier par date de naissance

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
ORDER BY 
    birth_date ASC;

Le tri en ordre croissant ASC va d’abord afficher les plus âgés, et en ordre décroissant DESC — les plus jeunes.

Combiner avec des valeurs uniques

Pour finir — un petit défi. Imagine que notre université a des campus dans plusieurs villes, et tu dois sortir la liste des villes uniques où étudient les étudiants, mais dans l’ordre alphabétique.

Exemple 6 : Valeurs uniques et tri

SELECT DISTINCT
    city 
FROM 
    students
ORDER BY 
    city ASC;

Qu’est-ce que fait DISTINCT ?

Ça enlève les doublons, donc chaque ville n’apparaît qu’une seule fois dans le résultat.

Pourquoi tout ça ?

Pour le confort et le style. Quand les données sont bien présentées, c’est plus simple à utiliser, et les boss posent moins de questions.

Pour être prêt pour la vraie vie. Tu pourras générer des rapports automatiquement, gérer des exports et préparer des présentations qui claquent.

Pour augmenter ta valeur. SQL, ce n’est pas juste des données. C’est comment les rendre claires et utiles.

Utilise ce que tu viens d’apprendre pour pas juste écrire des requêtes, mais carrément créer des chefs-d’œuvre ! Dans les prochaines leçons, on va continuer à plonger dans la magie de PostgreSQL.

1
Étude/Quiz
Formatage des chaînes, niveau 5, leçon 4
Indisponible
Formatage des chaînes
Formatage des chaînes
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION