Supprimer les espaces dans les chaînes est une tâche courante quand on nettoie et prépare des données. Chaque base de données implémente les fonctions de manipulation de chaînes à sa façon, mais toutes visent à rendre tes données plus propres et plus cohérentes. Dans ce guide, on va voir comment supprimer les espaces en SQL sur différentes bases de données, dont MySQL, PostgreSQL, SQL Server et SQLite.
Pourquoi supprimer les espaces ?
Des espaces se glissent parfois par erreur dans les données, ce qui nuit à leur cohérence et à la précision des requêtes et des rapports. Les supprimer permet de s’assurer que les comparaisons et les jointures fonctionnent comme prévu.
Essaie par toi-même
Envie de tester ces fonctions TRIM tout de suite ? Tu peux valider tes requêtes SQL avec notre outil SQL Syntax Checker, qui prend en charge les dialectes MySQL, PostgreSQL, SQL Server et SQLite.
Pour pratiquer sur une vraie base de données, essaie DB Fiddle, un outil en ligne gratuit qui te permet d’exécuter des requêtes SQL sur des bases MySQL, PostgreSQL et SQLite directement dans ton navigateur.
Supprimer les espaces dans MySQL
Dans MySQL, tu as plusieurs fonctions à ta disposition pour supprimer les espaces. On va se concentrer sur TRIM(), qui permet de supprimer les espaces au début, à la fin, ou des deux côtés.
Syntaxe
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
- BOTH : supprime les caractères au début et à la fin.
- LEADING : supprime les caractères au début.
- TRAILING : supprime les caractères à la fin.
- remstr : le caractère ou l’espace à supprimer (espace par défaut).
Exemple
SELECT TRIM(' Hello World ') AS trimmed_string;
Résultat attendu :
+----------------+
| trimmed_string |
+----------------+
| Hello World |
+----------------+
Exemple avec un caractère spécifique
SELECT TRIM(BOTH '-' FROM '---Hello World---') AS trimmed_string;
Résultat attendu :
+----------------+
| trimmed_string |
+----------------+
| Hello World |
+----------------+
Supprimer les espaces dans PostgreSQL
PostgreSQL propose une fonction TRIM() similaire.
Exemple
SELECT TRIM(' PostgreSQL User ') AS trimmed_string;
Résultat attendu :
+------------------+
| trimmed_string |
+------------------+
| PostgreSQL User |
+------------------+
Utiliser les fonctions spécialisées
PostgreSQL prend aussi en charge LTRIM() et RTRIM().
- LTRIM() : supprime les espaces au début.
- RTRIM() : supprime les espaces à la fin.
Exemples
SELECT LTRIM(' Leading whitespace') AS ltrimmed_string;
SELECT RTRIM('Trailing whitespace ') AS rtrimmed_string;
Résultat attendu :
+--------------------+
| ltrimmed_string |
+--------------------+
| Leading whitespace |
+--------------------+
+--------------------+
| rtrimmed_string |
+--------------------+
| Trailing whitespace|
+--------------------+
Supprimer les espaces dans SQL Server
SQL Server 2017 et les versions ultérieures prennent en charge la fonction standard TRIM(), qui supprime par défaut les espaces au début et à la fin.
Utiliser TRIM() (SQL Server 2017+)
SELECT TRIM(' SQL Server ') AS trimmed_string;
Résultat attendu :
+----------------+
| trimmed_string |
+----------------+
| SQL Server |
+----------------+
Utiliser LTRIM() et RTRIM() (toutes versions)
Pour les anciennes versions de SQL Server, ou si tu ne veux nettoyer qu’un seul côté, utilise LTRIM() et RTRIM().
SELECT LTRIM(' SQL Server') AS ltrimmed_string;
SELECT RTRIM('SQL Server ') AS rtrimmed_string;
Résultat attendu :
+-----------------+
| ltrimmed_string |
+-----------------+
| SQL Server |
+-----------------+
+-----------------+
| rtrimmed_string |
+-----------------+
| SQL Server |
+-----------------+
Pour supprimer les espaces au début et à la fin dans les anciennes versions, imbrique les fonctions :
SELECT LTRIM(RTRIM(' SQL Server ')) AS fully_trimmed_string;
Résultat attendu :
+----------------------+
| fully_trimmed_string |
+----------------------+
| SQL Server |
+----------------------+
Supprimer les espaces dans SQLite
Dans SQLite, utilise la fonction TRIM(), qui se comporte comme celle de MySQL.
Exemple
SELECT TRIM(' Hello SQLite ') AS trimmed_string;
Résultat attendu :
+---------------+
| trimmed_string|
+---------------+
| Hello SQLite |
+---------------+
Exemple pratique : nettoyer les données d’une table
Voici un exemple concret qui montre comment utiliser les fonctions TRIM pour nettoyer les données d’une table. Imagine que tu as une table customers avec des problèmes d’espaces :
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
INSERT INTO customers VALUES
(1, ' John Doe ', ' john@example.com'),
(2, 'Jane Smith ', 'jane@example.com '),
(3, ' Bob Wilson', ' bob@example.com ');
UPDATE customers
SET name = TRIM(name),
email = TRIM(email);
SELECT id, CONCAT('[', name, ']') AS name, CONCAT('[', email, ']') AS email
FROM customers;
Cette approche fonctionne sur toutes les principales bases de données, même si la syntaxe exacte de CONCAT peut légèrement varier.
Conclusion
Supprimer les espaces en SQL est une opération simple mais puissante qui aide à normaliser et préparer les données. Chaque base de données a sa propre syntaxe et ses propres possibilités, mais le principe reste le même. Utilise ces fonctions pour que tes données soient exactement comme prévu, et obtenir des requêtes et des rapports précis sur toutes tes bases SQL.
Beekeeper Studio est une interface de base de données gratuite & open source
Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.
Ce que les utilisateurs disent de Beekeeper Studio
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données agréable à nouveau. »
« J’ai essayé beaucoup d’interfaces de bases de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »