0Pricing
SQL Academy · Leçon

Motifs LIKE et caractères génériques

Utilisez LIKE avec les caractères génériques % et _, comprenez la sensibilité à la casse et préférez ILIKE dans PostgreSQL pour les correspondances insensibles à la casse.

Motifs LIKE et caractères génériques est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

Rôle de LIKE

LIKE compare une chaîne à un motif. Il utilise deux caractères génériques :

  • % — toute séquence, y compris une séquence vide
  • _ — exactement un caractère

Exemples simples

Effectuez une recherche par préfixe, par suffixe ou par sous-chaîne :

SELECT email FROM users WHERE email LIKE 'a%';        -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%';     -- contains admin

Caractères génériques à caractère unique

_ correspond exactement à un caractère. C’est idéal pour les codes de longueur fixe :

-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';

-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';

Sensibilité à la casse

Par défaut, LIKE est sensible à la casse dans PostgreSQL. Utilisez ILIKE pour une comparaison insensible à la casse :

SELECT * FROM users WHERE email LIKE  '%@gmail.com';  -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com';  -- ✓

Échapper les caractères génériques

Pour rechercher un % ou un _ littéral, utilisez une barre oblique inverse comme caractère d’échappement (ou définissez votre propre caractère ESCAPE) :

-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';

-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';

LIKE et index

Un index B-tree est utile uniquement pour les motifs avec préfixe :

-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';

-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';

Corriger les recherches avec caractère générique initial

Pour les recherches « %example% », utilisez un index GIN de trigrammes (pg_trgm) — ce sujet est traité dans Indexation avancée.

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);

SELECT * FROM users WHERE email LIKE '%example%';  -- now indexable

NOT LIKE

Inversez la recherche :

SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';

SIMILAR TO et expressions régulières (PostgreSQL)

Pour des recherches par motif plus avancées :

-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%';      -- TRUE

-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$';     -- TRUE
SELECT 'ABC'    ~* 'abc';                -- TRUE (case insensitive)

Créer des champs de recherche

Lorsque vous connectez un champ de recherche utilisateur, neutralisez d’abord les caractères génériques dans la saisie afin d’éviter tout comportement inattendu :

-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.

SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');

Ne recréez pas la recherche en texte intégral

Pour une recherche classée et adaptée à la langue dans des documents, utilisez tsvector + GIN, et non LIKE. Ce sujet est traité plus loin dans Indexation avancée.

Récapitulatif

LIKE est idéal pour les recherches simples par motif.

  • % = toute chaîne, _ = un caractère
  • Utilisez ILIKE pour une recherche insensible à la casse
  • Les recherches par préfixe utilisent B-tree ; les recherches par sous-chaîne nécessitent des trigrammes

Vérification rapide

Quel motif correspond aux chaînes qui se terminent par .com ?

Questions Fréquemment Posées

La leçon « Motifs LIKE et caractères génériques » est-elle gratuite ?

Oui — le texte complet de « Motifs LIKE et caractères génériques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Motifs LIKE et caractères génériques » ?

Utilisez LIKE avec les caractères génériques % et _, comprenez la sensibilité à la casse et préférez ILIKE dans PostgreSQL pour les correspondances insensibles à la casse. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Motifs LIKE et caractères génériques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Motifs LIKE et caractères génériques
  2. IN et NOT IN pour les ensembles
  3. BETWEEN pour les intervalles
  4. IS NULL, IS NOT NULL et COALESCE
← Retour à SQL Academy