0Pricing
SQL Academy · Lezione

Pattern LIKE e caratteri jolly

Usi LIKE con i caratteri jolly % e _, comprenda la distinzione tra maiuscole e minuscole e preferisca ILIKE in PostgreSQL per le ricerche senza distinzione tra maiuscole e minuscole

Pattern LIKE e caratteri jolly è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.

Cosa fa LIKE

LIKE confronta una stringa con un pattern. Sono disponibili due caratteri jolly:

  • % — qualsiasi sequenza, anche vuota
  • _ — esattamente un carattere

Esempi semplici

Corrispondenza per prefisso, suffisso e sottostringa:

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

Caratteri jolly per un singolo carattere

_ corrisponde esattamente a un carattere. È utile per i codici di lunghezza fissa:

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

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

Distinzione tra maiuscole e minuscole

Per impostazione predefinita, LIKE distingue tra maiuscole e minuscole (case-sensitive) in PostgreSQL. Utilizzi ILIKE per una corrispondenza che non distingue tra maiuscole e minuscole:

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

Escape dei caratteri jolly

Per cercare un % o un _ letterale, utilizzi il backslash come carattere di escape oppure definisca un carattere ESCAPE personalizzato:

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

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

LIKE e indici

Un indice B-tree è utile solo per i pattern con prefisso:

-- 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';

Correggere le ricerche con carattere jolly iniziale

Per le ricerche "%example%", utilizzi un indice GIN basato su trigrammi (pg_trgm), illustrato nella sezione Advanced Indexing.

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

Inverta la corrispondenza:

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

SIMILAR TO ed espressioni regolari (PostgreSQL)

Per una corrispondenza con pattern più complessi:

-- 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)

Creazione di caselle di ricerca

Quando collega una casella di ricerca per l'utente, sanifichi prima i caratteri jolly dell'input per evitare comportamenti imprevisti:

-- 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 || '%');

Non reinventi la ricerca full-text

Per una ricerca classificata e consapevole della lingua nei documenti, utilizzi tsvector + GIN, non LIKE. L'argomento è trattato più avanti nella sezione Advanced Indexing.

Riepilogo

LIKE è ideale per semplici corrispondenze di pattern.

  • % = qualsiasi stringa, _ = un carattere
  • Utilizzi ILIKE per ignorare la distinzione tra maiuscole e minuscole
  • Le ricerche per prefisso usano B-tree; per le sottostringhe servono i trigrammi

Verifica rapida

Quale pattern corrisponde alle stringhe che terminano con .com?

Domande Frequenti

La lezione «Pattern LIKE e caratteri jolly» è gratuita?

Sì — il testo completo di «Pattern LIKE e caratteri jolly» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.

Cosa imparerò in «Pattern LIKE e caratteri jolly»?

Usi LIKE con i caratteri jolly % e _, comprenda la distinzione tra maiuscole e minuscole e preferisca ILIKE in PostgreSQL per le ricerche senza distinzione tra maiuscole e minuscole Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare SQL Academy?

Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Pattern LIKE e caratteri jolly»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione SQL Academy?

Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Pattern LIKE e caratteri jolly
  2. IN e NOT IN per gli insiemi
  3. BETWEEN per gli intervalli
  4. IS NULL, IS NOT NULL e COALESCE
← Torna a SQL Academy