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 adminCaratteri 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 indexableNOT 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
- Pattern LIKE e caratteri jolly
- IN e NOT IN per gli insiemi
- BETWEEN per gli intervalli
- IS NULL, IS NOT NULL e COALESCE