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_addressPropulsé par
Voici le résultat :
full_address |-----------------------+
Street Roma,72, Padova|Propulsé par
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 fonctionCONCAT_WS():
SELECT CONCAT_WS(',','Street Roma','72','Padova')as full_addressPropulsé par
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.
email |country|-------------------+-------+
anonymous@gmail.com|IT |Propulsé par
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 estTRIM()d'enlever des deux côtés. D'autres alternatives sontLTRIM() 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_addressPropulsé par
La requête renvoie le résultat suivant :
trimmed_address|ltrimmed_address|rtrimmed_address|---------------+----------------+----------------+
Street Roma,72|Street Roma,72| Street Roma,72|Propulsé par
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 + :
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_5charactersPropulsé par
Voici le résultat :
first_character|first_3characters|first_5characters|---------------+-----------------+-----------------+
A |Ant |Anton |Propulsé par
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 namePropulsé par
Cette requête donne le résultat suivant :
lenght_name|first_character|LAST_characters|name |-----------+---------------+---------------+------+6|A |ntony |Antony|Propulsé par
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_addressPropulsé par
Voici le résultat :
address |cleaned_address |----------------+----------------+
Street Roma -32|Street Roma ,32|Propulsé par
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_dashPropulsé par
La requête renvoie le résultat suivant :
address |length_address|location_dash|----------------+--------------+-------------+
Street Roma -32|16|13|Propulsé par
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.
Découvrez les fonctions lambda Python, leur utilité et quand les utiliser. Comprend des exemples pratiques et des bonnes pratiques pour une mise en œuvre efficace.
Initiez-vous aux structures de données de Python : apprenez-en plus sur les types de données et les structures de données primitives et non primitives, telles que les chaînes de caractères, les listes, les piles, etc.
Découvrez le match-case de Python : un guide sur sa syntaxe, ses applications en data science, ML, et une analyse comparative avec le switch-case traditionnel.
Maîtrisez les fondamentaux de SQL indispensables en entreprise, apprenez à rédiger des requêtes SQL et commencez à analyser vos données grâce à ce langage puissant.
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é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():Voici le résultat :
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():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
Renvoie le texte avec tous les caractères en minuscules
Retourne le texte avec tous les caractères en majuscules
Supprime les espaces blancs à gauche et à droite de la chaîne par défaut, caractère spécial si spécifié
Supprime les espaces blancs à gauche de la chaîne par défaut, caractère spécial si spécifié
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.
Vous obtenez le résultat suivant :
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 sontLTRIM()etRTRIM()pour supprimer les espaces blancs respectivement à gauche et à droite :La requête renvoie le résultat suivant :
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 + :Le résultat obtenu est le suivant :
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 :
Voici le résultat :
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 :
Cette requête donne le résultat suivant :
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
Remplacer la valeur x de la chaîne par la valeur y
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 :Voici le résultat :
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 :
La requête renvoie le résultat suivant :
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,
CHARINDEXpeut être remplacé parLOCATE()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.