# SQL LIKE : l’opérateur pour une recherche efficace avec SQL

L’opérateur SQL `LIKE` fait partie des **outils SQL les plus importants** pour rechercher efficacement des jeux de données selon certains modèles. Cela est possible grâce à l’utilisation de caractères génériques et de modèles qui vous permettent de réduire considérablement le nombre d’enregistrements à analyser. Vous simplifiez et accélérez ainsi vos requêtes SQL !

## Qu’est-ce que l’opérateur SQL `LIKE` ?

L’opérateur SQL `LIKE` agit comme un détective pour l’analyse des données : selon les besoins, **il recherche des enregistrements et des chaînes de caractères**, soit pour des **correspondances exactes**, soit en utilisant des **caractères de remplacement** et des **modèles**. Dans ce contexte, les caractères de remplacement, appelés *Wildcards SQL*, sont utilisés exclusivement avec l’opérateur `LIKE`. Ils permettent de filtrer les données de manière efficace et flexible, optimisant ainsi considérablement les performances SQL. L’opérateur `LIKE` est souvent utilisé en combinaison avec la clause `WHERE` ainsi que les [commandes SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) [SQL `DELETE`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-delete/), [SQL `SELECT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select/) ou [SQL `UPDATE`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-update/).

Conseil Si vous ne vous êtes pas encore intéressé de près à [SQL](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/), découvrez ce qu’il faut savoir sur le sujet dans notre [introduction à SQL avec exemples](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/).

## Syntaxe de l’opérateur `LIKE`

La syntaxe de base de `LIKE` se présente comme suit :

```sql
SELECT colonneA, colonneB, ...
FROM tableA
WHERE colonneA LIKE ‘Modèle de recherche ou caractère de remplacement’
```

Ces paramètres sont utilisés :

- `SELECT` : définit les colonnes à partir desquelles vous récupérez des données. Avec un astérisque `*`, vous pouvez également faire appel à des enregistrements entiers.
- `FROM` : indique les tables à utiliser pour la recherche.
- `WHERE` : définit les colonnes à interroger.
- `LIKE` : spécifie les modèles de recherche. Vous pouvez utiliser des chaînes de caractères exactes ou des caractères de remplacement SQL pour obtenir des correspondances flexibles.

## SQL `LIKE` : quels sont les caractères Wildcards SQL appropriés ?

Les Wildcards SQL ne doivent être utilisées qu’avec l’opérateur LIKE pour **rechercher des résultats similaires et correspondants**. Voici les principaux jokers :

- **Le signe de pourcentage `%`** : le `%` remplace un ou plusieurs caractères dans le modèle de recherche. Avec `%Modèle de recherche%`, vous filtrez les données selon le modèle défini entre les signes de pourcentage. L’emplacement des résultats dans les données ou les caractères précédant ou suivant le modèle de recherche n’ont pas d’importance. Avec `%Modèle de recherche%`, vous filtrez les enregistrements en fonction des résultats qui commencent et se terminent par des caractères avant et après le `%`.
- **Le trait de soulignement `_`** : un trait de soulignement remplace un seul caractère dans le modèle de recherche. Par exemple, lors d’une recherche sur `S_RA`, vous filtrez vos données pour tous les noms commençant par S et se terminant par RA, avec un caractère inconnu à la deuxième position.
- **Les crochets `[...]`** : ils spécifient que la recherche s’applique à l’ensemble des caractères à l’intérieur des crochets. Par exemple, `[a-d]` indique que vous recherchez une lettre comprise entre A et D dans le motif de recherche.

## Voici les possibilités d’utilisation de l’opérateur `LIKE`

Les possibilités d’utilisation des requêtes et recherches avec `LIKE` sont presque **illimitées**. Vous pouvez, par exemple :

- Rechercher des variantes de noms qui commencent ou se terminent par une certaine chaîne de caractères si vous ne connaissez pas le nom exact.
- Rechercher des terminaisons d’email, comme *.fr*.
- Filtrer les correspondances exactes avec des termes de recherche concrets sans utiliser de SQL Wildcards.
- Filtrer les produits contenant des mots spécifiques dans leur nom ou rechercher des caractéristiques particulières des produits.
- Exclure des données en combinant l’opérateur `NOT` avec `LIKE`.
- Filtrer les résultats par date, plage de dates, ou par valeurs numériques comme les prix des produits.

Conseil Une gestion efficace des données nécessite une solution fiable et performante pour votre système de gestion de base de données. Avec l’[hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") de IONOS, vous bénéficiez d’offres de serveurs et d’hébergement flexibles adaptées à vos besoins.

## Exemples pratiques de recherche avec SQL `LIKE`

Selon le cas d’application et le jeu de données, différents types de commandes `LIKE` sont utilisés. Nos **exemples pratiques** illustrent le fonctionnement de SQL `LIKE`.

### Filtrer avec un terme de recherche exact

Imaginez que vous recherchez dans la table appelée « Clients » des clients ou des clientes avec un nom de famille spécifique. En utilisant SQL `LIKE`, vous obtenez tous les personnes avec le nom de famille en question. Il en va de même pour la recherche de valeurs numériques exactes, comme les prix des produits.

Exemple :

```sql
SELECT  *
FROM  Clients
WHERE Nom de famille  LIKE  'Meunier'
```

### Filtrer avec des signes de pourcentage

Pour **filtrer de grands ensembles de données selon des modèles**, vous utilisez des caractères de remplacement SQL. Avec les signes de pourcentage, vous pouvez par exemple filtrer dans une table de clients tous les noms commençant par « M » et se terminant par « er » :

```sql
SELECT  *
FROM  Clients
WHERE  Nom de famille  LIKE  'm%er'
```

Si vous recherchez toutes les adresses email se terminant par *.fr*, utilisez la syntaxe suivante :

```sql
SELECT  *
FROM  Clients
WHERE Adresse email  LIKE  '%.fr'
```

### Filtre avec un trait de soulignement

Vous recherchez dans la table « Clients » un nom de famille dont vous ne connaissez que les deux premières et les deux dernières lettres, mais pas la lettre intermédiaire ? Dans ce cas, la recherche se présente comme suit :

```sql
SELECT  *
FROM  Clients
WHERE  Nom de famille  LIKE  'Me_er'
```

### Exclure les données avec `NOT LIKE`

Vous pouvez **inverser la requête de recherche avec l’opérateur SQL `LIKE`** en le combinant avec le [SQL NOT](https://www.ionos.fr/digitalguide/serveur/configuration/sql-not/). De cette manière, vous filtrez un ensemble de données pour les résultats qui ne correspondent pas au terme ou au modèle de recherche. Par exemple, vous pouvez rechercher comme suit tous les clients ou clientes dont le nom de famille n’est pas identique au nom indiqué :

```sql
SELECT  *
FROM  Clients
WHERE  Nom de famille  NOT LIKE  'Meunier'
```

## Alternatives à l’opérateur SQL `LIKE`

Comme SQL `LIKE` fait partie des opérateurs de comparaison, il existe d’autres opérateurs SQL qui fonctionnent de manière similaire à `LIKE`. L’avantage de `LIKE` est toutefois que vous **bénéficiez d’une plus grande flexibilité et obtenez des résultats plus précis** grâce aux caractères génériques SQL tels que les caractères génériques et les modèles, même en cas de termes de recherche imprécis.

Opérateurs fonctionnant de manière similaire à SQL `LIKE` :

- **Égal `=` :** filtre les résultats qui correspondent au terme de recherche.
- **Différent `!=` :** filtre les résultats qui ne correspondent pas exactement au terme de recherche.
- **Inférieur à `<` ou Supérieur à `>` :** renvoie des valeurs numériques des enregistrements qui sont inférieures ou supérieures à la valeur recherchée. Avec `<=` ou `>=`, vous filtrez les résultats qui sont inférieurs ou égaux, ou supérieurs ou égaux à la valeur recherchée.


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/sql-like/](https://www.ionos.fr/digitalguide/serveur/configuration/sql-like/) for AI/LLM consumption.