CodeGym /Cours /SQL SELF /Formatage des chaînes : CONCAT(), UPPER(), LOWER()

Formatage des chaînes : CONCAT(), UPPER(), LOWER()

SQL SELF
Niveau 5 , Leçon 1
Disponible

Travailler avec des données textuelles, c’est le pain quotidien quand tu fais de la base de données. Imagine que t’es dev pour un site e-commerce et que t’as une base d’utilisateurs. Tu dois afficher les noms complets des utilisateurs pour une bannière de bienvenue sur le site, genre : "Bienvenue, Otto Art !". Ou alors tu veux standardiser toutes les adresses email (genre tout passer en minuscules). Dans ces cas-là, tu peux pas te passer des opérations sur les chaînes.

PostgreSQL te file des outils puissants pour gérer le texte. Aujourd’hui, on va voir trois outils de base :

  • CONCAT() — pour coller des chaînes ensemble.
  • UPPER() — pour mettre une chaîne en majuscules.
  • LOWER() — pour mettre une chaîne en minuscules.

Bosser avec la fonction CONCAT()

La fonction CONCAT() te permet de fusionner plusieurs chaînes en une seule. Elle est super utile si tes données sont dans des colonnes différentes mais que tu veux les afficher ensemble.

Syntaxe

CONCAT(string1, string2, ..., stringN)
  • string1, string2, stringN — les chaînes ou colonnes que tu veux coller ensemble.
  • Ça te renvoie une seule chaîne avec tous les arguments collés.

Exemple : on bosse avec les prénoms et noms

Imaginons qu’on a une table students :

first_name last_name
Otto Art
Maria Chi
Anna Pal

Notre mission : afficher les noms complets des étudiants au format "Prénom Nom".

Requête :

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

Résultat :

full_name
Otto Art
Maria Chi
Anna Pal

Fais gaffe au ' ' entre le prénom et le nom. C’est juste un espace qu’on a ajouté pour séparer les chaînes.

Petites subtilités

CONCAT() ignore NULL. Si un des arguments vaut NULL, il est juste zappé. Si tu sais pas encore ce que c’est NULL, t’inquiète — on en parlera un peu plus tard.

Alternative à CONCAT() — l’opérateur ||, genre :

SELECT first_name || ' ' || last_name AS full_name FROM students;

Changer la casse des chaînes : UPPER() et LOWER()

Imagine que tu bosses avec des adresses email que les utilisateurs ont tapées dans tous les sens : ivan@example.com, IVAN@EXAMPLE.COM. Pour standardiser, souvent tu veux :

  • mettre tout dans le même style avant de comparer (genre lowercase).
  • mettre en valeur des mots importants (genre UPPERCASE pour les titres).

UPPER() : texte en majuscules

La fonction UPPER() transforme ton texte en lettres capitales.

Syntaxe :

UPPER(string)
  • string — la chaîne ou le nom de la colonne texte.

Exemple :

Dans la table students, on a ajouté une colonne email :

first_name last_name email
Otto Art otto@example.com
Maria Chi MARIA@EXAMPLE.com
Anna Pal anna.pal@mail.ru

On veut afficher les emails en majuscules :

SELECT email, UPPER(email) AS email_upper
FROM students;

Résultat :

email email_upper
otto@example.com OTTO@EXAMPLE.COM
MARIA@EXAMPLE.com MARIA@EXAMPLE.COM
anna.pal@gmail.com ANNA.PAL@GMAIL.COM

LOWER() : texte en minuscules

Pareil, la fonction LOWER() met ton texte en minuscules.

Syntaxe :

LOWER(string)

Exemple :

On passe les emails en minuscules :

SELECT email, LOWER(email) AS email_lower
FROM students;

Résultat :

email email_lower
otto@example.com otto@example.com
MARIA@EXAMPLE.com maria@example.com
anna.pal@gmail.com anna.pal@gmail.com

Exemples pratiques et cas d’usage

Allez, on mélange tout ce qu’on a vu.

Créer un nom complet en majuscules

Requête :

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

Résultat :

full_name_upper
OTTO ART
MARIA CHI
ANNA PAL

Ici, on a utilisé CONCAT() pour coller prénom et nom, et UPPER() pour tout mettre en majuscules.

Exemple : standardiser les adresses email

On veut que toutes les adresses email soient en minuscules :

UPDATE students
SET email = LOWER(email);

Maintenant, tous les emails dans la table sont au même format, peu importe comment ils étaient à la base.

Comment marche l’opérateur UPDATE ? Tu verras ça dans les prochaines leçons.

Préparer un message de bienvenue pour les utilisateurs

On ajoute un "Bienvenue" devant le nom complet :

SELECT CONCAT('Bienvenue, ', first_name, ' ', last_name, '!') AS greeting
FROM students;

Résultat :

greeting
Bienvenue, Otto Art!
Bienvenue, Maria Chi!
Bienvenue, Anna Pal!

Erreurs classiques avec les fonctions texte

Si tu oublies l’espace dans CONCAT(), le résultat peut être bizarre. Par exemple :

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

Le résultat sera : "OttoArt", "MariaChi". Pense toujours à mettre un espace où il faut.

Utilisation de NULL. Si un des arguments de CONCAT() vaut NULL, la chaîne peut être incomplète. Par exemple :

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

Si middle_name = NULL, alors le résultat sera "Otto NULL Art". Pour éviter ça, tu peux utiliser la fonction COALESCE() :

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

On verra plus en détail NULL et la fonction COALESCE() dans les prochaines leçons :P

2
Mission
SQL SELF, niveau 5, leçon 1
Bloqué
Conversion en majuscules
Conversion en majuscules
2
Mission
SQL SELF, niveau 5, leçon 1
Bloqué
Standardisation des adresses email
Standardisation des adresses email
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION