Accéder au contenu principal

Fonctions SQL pour les chaînes de caractères : Guide du débutant

Comprendre comment utiliser les fonctions SQL String pour nettoyer et traiter efficacement les données textuelles.
Actualisé 15 janv. 2025  · 7 min de lecture

Travailler avec des bases de données relationnelles implique souvent de manipuler des données désordonnées. L'un des défis les plus courants consiste à nettoyer et à traiter les données textuelles. Heureusement, SQL fournit de puissantes fonctions de chaîne de caractères qui peuvent rendre ce processus beaucoup plus efficace et vous faire gagner du temps et de l'énergie.

Dans cet article, nous allons explorer les fonctions SQL les plus importantes qui peuvent vous aider à nettoyer et à manipuler facilement des données textuelles. Commençons !

Qu'est-ce que les fonctions de chaîne SQL ?

Les fonctions SQL String sont des fonctions intégrées qui nous permettent de manipuler et de traiter des données textuelles stockées dans une base de données. Les noms, les descriptions et les adresses sont des exemples courants de champs de texte.

Ces fonctions peuvent être utilisées pour effectuer un large éventail de tâches, notamment :

  • Concaténer des chaînes de caractères 
  • Mise en forme du texte
  • Extraction de parties d'une chaîne de caractères
  • Rechercher et remplacer un texte spécifique dans une chaîne de caractères

Concaténation de chaînes de caractères en SQL

Nous pouvons concaténer deux ou plusieurs chaînes de caractères à l'aide de la fonction concat():

SELECT CONCAT('Street Roma',', ','72',', ','Padova') AS full_address

Voici le résultat :

full_address           |
-----------------------+
Street Roma, 72, Padova|

Cette fonction est largement utilisée pour combiner les informations fournies par différentes colonnes, comme les noms et les adresses.

Vous pouvez également utiliser la fonction CONCAT_WS():

SELECT CONCAT_WS(',','Street Roma','72','Padova') as full_address

D'après la syntaxe, vous pouvez remarquer qu'il est plus facile et plus efficace de combiner plus de deux colonnes avec le même séparateur.

Mise en forme du texte

Il s'agit de plusieurs fonctions SQL permettant d'ajuster le texte en changeant la casse, en supprimant les espaces supplémentaires et en effectuant d'autres opérations. Chaque fonction est répertoriée avec sa syntaxe et la description correspondante.

Syntaxe de la fonction

Description

LOWER(chaîne)

Renvoie le texte avec tous les caractères en minuscules

UPPER(chaîne)

Retourne le texte avec tous les caractères en majuscules

 TRIM(chaîne, [caractère])

Supprime les espaces blancs à gauche et à droite de la chaîne par défaut, caractère spécial si spécifié

LTRIM(string, [character])

Supprime les espaces blancs à gauche de la chaîne par défaut, caractère spécial si spécifié

RTRIM(chaîne, [caractère])

Supprime les espaces blancs à droite de la chaîne par défaut, caractère spécial si spécifié

Prenons maintenant quelques exemples pour comprendre comment appliquer ces fonctions. Imaginez un cas où les adresses électroniques sont en majuscules et l'acronyme de l'État en minuscules, et où vous souhaitez corriger le format de ces colonnes.

SELECT
		LOWER('ANONymous@gmail.com') AS email,
		UPPER('it') AS country

 Vous obtenez le résultat suivant :

email              |country|
-------------------+-------+
anonymous@gmail.com|IT     |

Outre le changement de casse, il peut également être utile de supprimer les espaces blancs au début ou à la fin des chaînes de caractères. La fonction première de ce type d'opération est TRIM() d'enlever des deux côtés. D'autres alternatives sont LTRIM() et RTRIM() pour supprimer les espaces blancs respectivement à gauche et à droite :

SELECT  TRIM(' Street Roma, 72 ') AS trimmed_address,
	  LTRIM(' Street Roma, 72 ') AS ltrimmed_address,
	  RTRIM(' Street Roma, 72 ') AS rtrimmed_address

La requête renvoie le résultat suivant :

trimmed_address|ltrimmed_address|rtrimmed_address|
---------------+----------------+----------------+
Street Roma, 72|Street Roma, 72 | Street Roma, 72|

Le résultat vous permet de constater les différences entre chaque fonction. En outre, TRIM() peut être utilisé pour supprimer d'autres caractères spéciaux, en plus des espaces blancs. Par exemple, nous voulons nettoyer le champ du téléphone en supprimant le signe + :

SELECT TRIM('++345','+') AS telephone

Le résultat obtenu est le suivant :

telephone|
---------+
345      |

Comme vous pouvez le constater, le numéro de téléphone est complètement propre.

Extraction de texte

Après avoir concaténé et modifié le format des chaînes, il est temps de découvrir comment extraire du texte à l'aide de la fonction SQL spéciale SUBSTRING(). Montrons différents exemples pour maîtriser cette fonction :

SELECT
		SUBSTRING('Antony',1,1) AS first_character, 
		SUBSTRING('Antony',1,3) AS first_3characters,
		SUBSTRING('Antony',1,5) AS first_5characters

Voici le résultat :

first_character|first_3characters|first_5characters|
---------------+-----------------+-----------------+
A              |Ant              |Anton            |

Nous pouvons également combiner cette fonction avec les fonctions précédentes pour mettre le premier caractère en majuscule, convertir le reste des lettres en minuscules et, enfin, concaténer toutes les lettres :

SELECT
LENGTH('antony') AS lenght_name,
SUBSTRING(UPPER('antony'),1,1) AS first_character,
SUBSTRING(LOWER('antony'),2,LENGTH('antony')) AS  last_characters,
CONCAT(SUBSTRING(UPPER('antony'),1,1),SUBSTRING(LOWER('antony'),
      2,LENGTH('antony'))) AS name

Cette requête donne le résultat suivant :

lenght_name|first_character|LAST_characters|name  |
-----------+---------------+---------------+------+
          6|A              |ntony          |Antony|

En plus des fonctions vues jusqu'à présent, vous pouvez remarquer la fonction LENGTH() qui permet d'extraire la longueur de la chaîne. Dans ce contexte, il est utile de préciser l'indice du dernier caractère.

Rechercher et remplacer des chaînes de caractères en SQL

Nous pouvons présenter les principales fonctions de recherche et de remplacement de chaînes de caractères :

Syntaxe de la fonction

Description

REPLACE(string,x,y)

Remplacer la valeur x de la chaîne par la valeur y

CHARINDEX(x,string)

Trouver la position de la valeur x dans la chaîne de caractères

La fonction REPLACE() est très utile pour remplacer une sous-chaîne par une autre sous-chaîne à l'intérieur de la chaîne :

SELECT
		'Street Roma - 32' AS address,
		replace('Street Roma - 32','-',',') AS cleaned_address

Voici le résultat :

address         |cleaned_address |
----------------+----------------+
Street Roma - 32|Street Roma , 32|

Dans ce cas, nous avons simplement remplacé un tiret par une virgule dans l'adresse. Nous pouvons également essayer de trouver la position du tiret dans l'adresse :

SELECT
		'Street Roma - 32' AS address,
		LENGTH('Street Roma - 32') AS length_address,
		CHARINDEX('-','Street Roma - 32') AS location_dash

La requête renvoie le résultat suivant :

address         |length_address|location_dash|
----------------+--------------+-------------+
Street Roma - 32|            16|           13|

Nous pouvons remarquer que le symbole - se trouve en position 13 de l'adresse, c'est-à-dire à la fin de la chaîne de caractères.

Conclusion

La maîtrise de ces fonctions de chaîne SQL peut faire la différence dans le nettoyage efficace des données. Bien entendu, l'article ne couvre pas toutes les fonctions, mais seulement une courte liste des fonctions les plus importantes. Toutes les fonctions SQL ne sont pas toujours valables et peuvent changer en fonction du type de base de données que vous utilisez. Par exemple, CHARINDEX peut être remplacé par LOCATE() dans une base de données MySQL. 

Pour vous entraîner à l'utilisation de ces fonctions, vous pouvez consulter notre site Web Reporting en SQL Cours de reporting en SQL. Il peut vous aider à devenir un expert dans le nettoyage des données et l'élaboration de rapports complexes. Nous vous recommandons également de suivre le cours Fondamentaux SQL pour couvrir tous les aspects essentiels de SQL.


Eugenia Anello's photo
Author
Eugenia Anello
LinkedIn

Data Scientist - CRIF

Sujets

Les meilleurs cours de SQL

cursus

Principes fondamentaux de SQL

26 heures hr
Maîtrisez les principes fondamentaux du langage SQL nécessaires aux entreprises, apprenez à écrire des requêtes SQL et commencez à analyser vos données à l'aide de ce puissant langage.
Afficher les détailsRight Arrow
Commencer le cours
Certification disponible

cours

Rapports en SQL

4 hr
33.2K
Apprenez à créer vos propres rapports et tableaux de bord SQL, et perfectionnez vos compétences en matière d'exploration, de nettoyage et de validation des données.
Voir plusRight Arrow