CodeGym /Cours /SQL SELF /Travailler avec les chaînes : LENGTH(), SUBSTRING(), TRIM...

Travailler avec les chaînes : LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Niveau 6 , Leçon 0
Disponible

Quand tu bosses avec des noms, adresses, emails ou n'importe quel autre texte — tu dois presque toujours faire l'une de ces deux choses :

  • Extraire une partie de la chaîne
  • Connaître la longueur
  • Nettoyer les espaces en trop
  • Trouver/remplacer un fragment
  • Formater l'affichage

Par exemple, tu dois :

  • Afficher juste le nom de famille à partir du nom complet.
  • Trouver les étudiants dont le nom de famille commence par « P ».
  • Remplacer tous les espaces par des underscores.
  • Afficher le nom de famille avec une majuscule.

Tout ça, c'est super simple à faire avec les fonctions de chaînes de PostgreSQL.

LENGTH() — longueur de la chaîne

La fonction LENGTH() te donne le nombre de caractères dans une chaîne.

Syntaxe :

LENGTH(string)

Exemple :

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Pratique pour vérifier la longueur d'un nom complet, d'un mot de passe ou d'autres textes.

SUBSTRING() — extraire une partie de la chaîne

Permet de choper une sous-chaîne — genre, les 3 premières lettres du nom de famille ou le domaine d'un email.

Syntaxe :

SUBSTRING(string FROM start FOR length)
  • start — position du premier caractère (ça commence à 1)
  • length — combien de caractères tu veux extraire

Exemple 1 : les 3 premières lettres du nom de famille

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Exemple 2 : domaine de l'email

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — enlever les espaces en trop

Enlève les espaces (et d'autres caractères) au début et/ou à la fin d'une chaîne.

Syntaxe :

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Mais le plus souvent, tu l'utilises juste comme ça :

TRIM(string)

Exemple :

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

C'est super important si les utilisateurs saisissent les données à la main (genre, avec des espaces au début).

POSITION() — chercher une sous-chaîne

Renvoie la position où commence la sous-chaîne.

Syntaxe :

POSITION(substring IN string)

Exemple :

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Tu peux l'utiliser avec SUBSTRING() pour extraire des parties de chaîne.

REPLACE() — remplacer une sous-chaîne

Remplace toutes les occurrences d'une sous-chaîne par une autre.

Syntaxe :

REPLACE(string, from_substring, to_substring)

Exemple : remplacer les espaces par des underscores

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — première lettre en majuscule

Transforme la chaîne pour que la première lettre de chaque mot soit en majuscule, les autres en minuscules.

Syntaxe :

INITCAP(string)

Exemple :

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Pratique pour standardiser les noms complets.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION