Retour à la liste des articles Articles
7 minutes de lecture

Aperçu des fonctions texte SQL

Dans cet article, nous allons aborder les tenants et aboutissants des fonctions texte SQL les plus courantes, qui vous permettent de trouver et de travailler sur des valeurs de chaîne de caractères.

Avant de nous plonger dans les fonctions texte, rappelons rapidement ce qu'est une fonction SQL. En termes simples, une fonction est un élément de code prédéfini intégré que vous pouvez utiliser dans votre requête SQL. Par exemple, les fonctions SUM(), AVG(), et COUNT() sont appliquées à des variables numériques pour calculer respectivement la somme, la moyenne et le nombre d'enregistrements.

Nous allons utiliser la table suivante OrderDetails de la célèbre base de données Northwind pour démontrer le fonctionnement de la fonction SUM().

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140
518104432812

L'objectif est de renvoyer le total de Quantity commandé sur l'ensemble des 518 commandes.

DEMANDE :

SELECT SUM(Quantity) AS Total_Ordered_Quantity
FROM OrderDetails

RÉSULTAT :

Nombre d'enregistrements : 1

Total_Ordered_Quantity
12743

Dans l'exemple ci-dessus, la fonction SUM() a été utilisée pour calculer le total de toutes les quantités commandées. Le ou les arguments (ou paramètres) de la fonction sont définis entre les parenthèses. Selon la syntaxe SQL, les parenthèses sont nécessaires même si aucun paramètre n'est passé dans la fonction.

Fonctions texte en SQL

Les bases de données sont dotées de nombreuses fonctions intégrées différentes. Il est donc important de connaître les fonctions les plus couramment utilisées afin de pouvoir écrire des requêtes de manière efficace et efficiente, sans avoir à créer de toutes pièces vos propres fonctions définies par l'utilisateur. LearnSQL.fr's Fonctions SQL standards couvrent toutes les fonctions textuelles, numériques, de date et d'heure et d'agrégat courantes à l'aide d'exemples pratiques détaillés, d'instructions et d'exercices.

Dans cet article, nous allons examiner certaines des fonctions texte SQL les plus utilisées . Elles fonctionnent sur des types de données texte tels que VARCHAR, CHAR et TEXT.

Notez que les fonctions intégrées varient selon les bases de données. Dans cet article, nous nous concentrerons uniquement sur les fonctions SQL standard, qui fonctionnent pour la plupart des bases de données compatibles avec SQL. (Consultez la documentation de votre base de données pour plus de détails.) Pour les exemples présentés ci-dessous, nous utiliserons la table Customers de la même base de données Northwind.

CustomerIDCustomerNameContactNameAddressCityPostal Code
1102481112
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DP

CHAR_LENGTH()

La fonction CHAR_LENGTH() renvoie le nombre de caractères d'une chaîne de caractères. Cette fonction est rarement utilisée seule ; vous la trouverez généralement en conjonction avec d'autres fonctions.

Si la chaîne en entrée est vide, CHAR_LENGTH() renvoie 0. Si la chaîne en entrée est NULL, la fonction renvoie NULL. La syntaxe est assez simple - il suffit de mettre le nom de la colonne concernée entre parenthèses.

Voyons un exemple ci-dessous dans lequel nous calculons la longueur de la chaîne de caractères pour chacun des enregistrements de la colonne CustomerName de la table Customers de la table.

QUERY :

QUERY :

SELECT CHAR_LENGTH(CustomerName) 
FROM Customers;

RESULTAT :

Nombre d'enregistrements : 91

19
34
23
15

Notez que dans les résultats présentés ci-dessus, la longueur de la chaîne inclut les espaces entre les mots (c'est-à-dire entre le prénom, le second prénom et le nom de famille).

UPPER() et LOWER()

Les fonctions UPPER() et LOWER() convertissent chaque lettre d'une chaîne définie en caractères majuscules ou minuscules. Ces fonctions texte sont souvent utilisées pour le nettoyage des données ou pour préparer les données pour les étapes suivantes. Par exemple, la fonction REPLACE() est sensible à la casse, vous devez donc convertir toutes les chaînes de caractères en respectant la même casse que le texte des critères pour que REPLACE() fonctionne.

La syntaxe générale des deux fonctions est assez simple ; une fois encore, le nom de la colonne est placé entre parenthèses. Essayons de convertir tous les enregistrements de la colonne Ville en majuscules.

DEMANDE :

SELECT UPPER(City) as CITY 
FROM Customers;

RESULTAT :

Nombre d'enregistrements : 91

CITY
BERLIN
MEXICO D.F.
MEXICO D.F.
LONDON

La syntaxe et l'application de LOWER() sont exactement les mêmes que celles de UPPER().

Enfin, si une valeur donnée est NULL, alors la fonction renvoie un NULL.

SUBSTRING()

La fonction SUBSTRING() extrait une sous-chaîne (c'est-à-dire une partie d'une chaîne) dans une chaîne. Elle part d'un emplacement spécifié et extrait une sous-chaîne d'une longueur spécifiée.

La syntaxe générale de la fonction SUBSTRING() est la suivante :

SUBSTRING(string, start, length)
  • La chaîne de caractères.
  • La position (la première position est 1) pour commencer l'extraction.
  • La longueur (c'est-à-dire le nombre de caractères) à retourner.

Notez que tous les paramètres sont obligatoires.

Si le paramètre position ou longueur est NULL, alors un NULL est retourné. Si le paramètre de début est supérieur à la longueur de la chaîne (par exemple, la chaîne est "APPLE" et le paramètre de début est 10), la fonction renvoie une chaîne de longueur nulle. Si le paramètre delongueur est une valeur négative, vous obtiendrez une erreur et la requête ne sera pas exécutée. Si le total des paramètres length et start est supérieur à la longueur de la chaîne, la fonction renvoie la chaîne entière.

Prenons un exemple où nous extrayons les 5 premiers caractères de chaque enregistrement de la colonne CustomerName:

QUERY :

SELECT SUBSTRING(CustomerName, 1, 5) AS ExtractName
FROM Customers

RESULTAT :

Nombre d'enregistrements : 91

ExtractName
Alfre
Ana T
Anton
Aroun

REPLACE()

La fonction REPLACE() recherche et remplace toutes les occurrences d'une sous-chaîne (dans une chaîne donnée) par une nouvelle sous-chaîne. Notez que la partie recherche de la fonction est sensible à la casse.

La syntaxe générale de la fonction REPLACE() est la suivante ...

REPLACE(string, old_string, new_string)

... où chaîne est la chaîne (ou le nom de la colonne) à rechercher, ancienne_chaîne est l'ensemble des caractères à remplacer, et nouvelle_chaîne est le remplacement.

Voyons un exemple qui remplacera l'abréviation "Str" par "Street" dans la colonne Adresse.

DEMANDE :

SELECT REPLACE(Address, 'Str.', 'Street') as Address 
FROM Customers;

RESULTAT :

Nombre d'enregistrements : 91

Address
Obere Street 57
Avda. de la Constitución 2222
Mataderos 2312
120 Hanover Sq.

Dans l'exemple ci-dessus, nous remplaçons "Str.", l'ancienne_chaîne, par "Street", la nouvelle_chaîne, dans la colonne Address. Les remplacements de ce type sont souvent effectués lors du nettoyage des données afin de les rendre plus cohérentes pour une analyse ultérieure.

Si le paramètre new_string est NULL, REPLACE() renvoie également NULL. Si le paramètre old_string est introuvable, rien n'est remplacé ; la chaîne est retournée dans sa forme originale, sans remplacement.

TRIM()

La fonction TRIM() supprime les espaces avant et arrière (ou d'autres caractères que vous spécifiez en tant que paramètre facultatif) du début et/ou de la fin d'une chaîne. Elle est généralement utilisée pour supprimer tout caractère ou espace inutile d'un ensemble de données avant l'analyse.

La syntaxe générale de la fonction TRIM() est la suivante :

TRIM([‘TrimCharacters’ FROM] string)

Ici, TrimCharacters (le paramètre facultatif) est le ou les caractères à supprimer de la chaîne. Si ce paramètre n'est pas spécifié, SQL supprime les espaces de queue et de tête de la chaîne.

Dans l'exemple ci-dessous, nous appliquons la fonction TRIM() à la colonne Address. Dans cet ensemble de données, les entrées sont déjà assez propres. Mais voyons comment la fonction TRIM() fonctionne si nous spécifions que tous les chiffres numériques doivent être coupés.

DEMANDE :

SELECT TRIM('0123456789' FROM Address) As Trimmed_Address 
From Customers

RESULTAT :

Nombre d'enregistrements : 91

Trimmed_Address
Obere Str.
Avda. de la Constitución
Mataderos
Hanover Sq.

Nous pouvons voir que tous les chiffres ont été coupés au début et à la fin de chaque adresse. Chacun des caractères spécifiés dans la fonction TRIM() de TrimCharacters est traité et supprimé individuellement. En outre, une fois que les caractères définis sont supprimés, les espaces avant et arrière sont également supprimés. Par exemple, pour Hanover Square, '120' est supprimé de l'extrémité avant, tandis que pour Avda. De la Constitución, '2222' est rogné à la fin.

La fonction TRIM() est un moyen efficace de combiner les fonctionnalités des fonctions LTRIM() et RTRIM(), qui suppriment respectivement les espaces avant et arrière. Pour une présentation détaillée, reportez-vous à la section Comment supprimer les espaces initiaux et/ou finaux d'une chaîne de caractères en T-SQL.

Mise en œuvre des fonctions texte SQL

J'espère que ces exemples de fonctions texte SQL couramment utilisées vous ont aidé à les comprendre. Les analystes de données et les développeurs utilisent fréquemment les fonctions texte, et la maîtrise de ces fonctions est un élément clé de leur répertoire SQL.

La meilleure façon de maîtriser les fonctions SQL est la pratique ! Je vous encourage à apprendre en utilisant des exemples pratiques comme ceux de notre Fonctions SQL standards cours. Si vous souhaitez vous spécialiser dans les dialectes PostgreSQL et T-SQL, consultez nos cours Common Functions in PostgreSQL et Common Functions in MS SQL Server.