16/12/2024

Base de données

L’opérateur LIKE en SQL

I. Présentation

L'opérateur LIKE est un opérateur SQL qui permet d'effectuer une comparaison partielle, ce qui peut être une utile pour effectuer une recherche dans la base de données. Pour cela, LIKE s'associe à "%" qui remplace n'importe qu'elle chaîne de caractères et "_" qui remplacement un seul et unique caractère.

II. Exemples

A. Script de la base de données pour les exemples

Si vous souhaitez utiliser la même base de données que moi pour les exemples de ce tutoriel, utilisez le script SQL ci-dessous :

CREATE DATABASE France ;
USE France ;
CREATE TABLE Villes
( ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,
Vil_Nom CHAR(20) NOT NULL
) ENGINE = InnoDB CHARACTER SET latin1 COLLATE latin1_bin ;
INSERT INTO Villes
(
Vil_Nom
)
VALUES
("Auxerre" ),
("Avranches" ),
("Bordeaux" ),
("Brest" ),
("Caen" ),
("Cannes" ),
("Dijon" ),
("Lille" ),
("Lyon" ),
("Marseille" ),
("Montpellier" ),
("Nancy" ),
("Nantes" ),
("Paris" ),
("Reims" ),
("Rennes" );

Cette base de données contient une seule table qui référence quelques noms de villes Françaises.

B. Exemple n°1 avec LIKE et "%"

Dans ce premier exemple, nous allons rechercher toutes les villes commençant par le caractère "A", il faut donc écrire "A%" pour que % soit égale à n'importe quelle suite de caractères. La requête sera :

SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE 'A%'

Le résultat de cette requête :

 

like1

C. Exemple n°2 avec LIKE et "%"

Dans ce second exemple, nous allons chercher toutes les villes contenant la la chaîne de caractères "an", il faut donc écrire "%an%" pour que "an" soit précédé et suivi de n'importe qu'elle chaîne de caractères.

SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '%an%'

Le résultat de cette requête :

like2

On retrouve bien dans chacun des résultats la syllabe "an" précédé et/ou suivi de n'importe qu'elle chaine de caractères.

D. Exemple n°3 avec LIKE et "_"

Désormais, nous allons chercher toutes les villes qui contiennent la chaîne de caractères "aris" mais où on ne connaît pas la première lettre, c'est à dire toutes les villes "_aris" où "_" remplace n'importe qu'elle lettre.

SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '_aris'

Le résultat de la requête est :

like3

E. Exemple n°4 avec LIKE, "%" et "_"

Dans le dernier exemple de ce tutoriel, nous allons utiliser LIKE et l'associer à "%" et "_" pour trouver toute les villes dont le deuxième caractère est un "i". Il faut donc faire "_i%" étant donné que "_" représentera uniquement le premier caractère.

SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '_i%'

Ce qui retournera comme résultat :

like4

Si vous rencontrez des problèmes dans l'utilisation de l'opérateur LIKE n'hésitez pas à en parler dans le forum ou à laisser un commentaire.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.