L’operatore SQL LIKE fa parte dei prin­ci­pa­li strumenti di SQL con cui eseguire ricerche ef­fi­cien­ti nei record di dati in base a de­ter­mi­na­ti modelli. Questa fun­zio­na­li­tà è resa possibile dall’utilizzo di se­gna­po­sti e modelli che ti per­met­to­no di re­strin­ge­re no­te­vol­men­te i record di dati in cui eseguire la ricerca. In questo modo puoi sem­pli­fi­ca­re e ve­lo­ciz­za­re le tue query in SQL.

Che cos’è l’operatore SQL LIKE?

L’operatore SQL LIKE funziona come un detective alla ricerca di in­for­ma­zio­ni per le analisi dei dati. A seconda delle necessità, le ricerche nei record di dati e nelle sequenze di caratteri avvengono per cor­ri­spon­den­ze esatte o uti­liz­zan­do se­gna­po­sti e modelli. In questo ambito, i se­gna­po­sti di SQL sono detti anche caratteri jolly di SQL, uti­liz­za­ti solo in com­bi­na­zio­ne con l’operatore LIKE. Essi per­met­to­no di filtrare i dati in modo ef­fi­cien­te e mirato e di ot­ti­miz­za­re no­te­vol­men­te le pre­sta­zio­ni di questo lin­guag­gio di in­ter­ro­ga­zio­ne. L’operatore LIKE viene uti­liz­za­to spesso in com­bi­na­zio­ne con la clausola WHERE e con i comandi SQL SQL DELETE, SQL SELECT o SQL UPDATE.

Consiglio

Se non hai mai ap­pro­fon­di­to l’uso di SQL, dai un’occhiata alla nostra in­tro­du­zio­ne a SQL mediante esempi.

La sintassi dell’operatore LIKE

La sintassi fon­da­men­ta­le di LIKE si presenta così:

SELECT  colonnaA,  colonnaB, …
FROM tabellaA
WHERE colonnaA  LIKE 'Modello di ricerca o segnaposto'
sql

Sono di­spo­ni­bi­li i seguenti parametri:

  • SELECT: definisce le colonne da cui ri­chia­ma­re i dati. Un asterisco * permette di con­si­de­ra­re anche interi record di dati.
  • FROM: indica le tabelle da con­si­de­ra­re per la ricerca.
  • WHERE: definisce con­cre­ta­men­te le colonne per la query.
  • LIKE: definisce il modello di ricerca. È possibile uti­liz­za­re sequenze di caratteri precise per cor­ri­spon­den­ze esatte oppure i caratteri jolly di SQL.

Caratteri jolly di SQL di­spo­ni­bi­li per SQL LIKE

I caratteri jolly di SQL devono essere uti­liz­za­ti per la ricerca con SQL solo insieme all’operatore LIKE per cercare risultati simili e cor­ri­spon­den­ti. I prin­ci­pa­li caratteri jolly sono:

  • Simbolo della per­cen­tua­le %: il % so­sti­tui­sce uno o più caratteri nel modello di ricerca. Con %modelloricerca% puoi filtrare il record di dati in base al modello definito fra i simboli di per­cen­tua­le. Non è im­por­tan­te dove si trovino i risultati all’interno del record di dati o quali stringhe di caratteri siano presenti prima o dopo il modello di ricerca. Con modello%ricerca è possibile filtrare il record di dati in base ai risultati che iniziano o finiscono con i caratteri che precedono o seguono %.
  • Trattino basso _: i trattini bassi so­sti­tui­sco­no singoli caratteri nel modello di ricerca. Cercando S_RA, ad esempio, puoi filtrare i tuoi dati cercando tutti i nomi che iniziano per S e terminano per RA, se la seconda lettera è sco­no­sciu­ta.
  • Parentesi quadre […]: sta­bi­li­sco­no che la ricerca dell’insieme di caratteri è valida all’interno delle parentesi. Ad esempio, puoi uti­liz­za­re [a-d] per cercare una lettera fra A e D all’interno del modello di ricerca.

Pos­si­bi­li­tà di ap­pli­ca­zio­ne offerte dall’operatore LIKE

Le pos­si­bi­li­tà di ap­pli­ca­zio­ne per query e ricerche con LIKE sono quasi il­li­mi­ta­te. Ad esempio è possibile:

  • Cercare varianti dei nomi che iniziano o terminano con una data stringa di caratteri, se non conosci il nome esatto
  • Cercare esten­sio­ni degli indirizzi e-mail come .it
  • Filtrare per cor­ri­spon­den­ze esatte con chiavi di ricerca precise senza caratteri jolly di SQL
  • Filtrare per prodotti con de­ter­mi­na­te parole nel loro nome o cercare de­ter­mi­na­te ca­rat­te­ri­sti­che del prodotto
  • Escludere dati, com­bi­nan­do gli operatori NOT e LIKE
  • Filtrare i risultati, ad esempio per data, in­ter­val­lo di date o valori numerici, come i prezzi dei prodotti
Consiglio

Una gestione ef­fi­cien­te dei dati richiede una soluzione potente e sicura per il tuo sistema di gestione dei database. Con l’hosting SQL server di IONOS trovi offerte per server e hosting fles­si­bi­li, adatte alle tue esigenze.

Server virtuali (VPS)
Affidati ai VPS e server di IONOS, il tuo partner digitale cer­ti­fi­ca­to ISO
  • 1 Gbps di larghezza di banda e traffico il­li­mi­ta­to
  • Di­spo­ni­bi­li­tà del 99,99% e cer­ti­fi­ca­zio­ne ISO
  • As­si­sten­za 24/7 e con­su­len­te personale

Esempi pratici per la ricerca con SQL LIKE

A seconda dell’ap­pli­ca­zio­ne e del record di dati è possibile uti­liz­za­re diversi tipi di comandi LIKE. I nostri esempi pratici mostrano il fun­zio­na­men­to di SQL LIKE.

Fil­trag­gio con chiave di ricerca esatta

Immagina di dover cercare i clienti con un cognome specifico nella tabella “Clienti”. Uti­liz­zan­do SQL LIKE, puoi ri­chia­ma­re tutti i clienti con quel cognome esatto. Lo stesso vale per la ricerca di valori numerici esatti, come i prezzi dei prodotti.

Esempio:

SELECT  *
FROM  clienti
WHERE  cognome  LIKE  'Rossi'
sql

Fil­trag­gio con simbolo di per­cen­tua­le

Per filtrare record di dati di maggiori di­men­sio­ni in base a modelli, utilizza i caratteri jolly di SQL. Con il simbolo della per­cen­tua­le, ad esempio, puoi filtrare una tabella di clienti trovando tutti i nomi che iniziano per “R” e finiscono per “ni”:

SELECT  *
FROM  clienti
WHERE  cognome  LIKE  'R%ni'
sql

Se vuoi cercare tutti gli indirizzi e-mail che finiscono per .it, utilizza la seguente sintassi:

SELECT  *
FROM  clienti
WHERE  indirizzo e-mail  LIKE  '%.it'
sql

Fil­trag­gio con trattino basso

Stai cercando un cognome nella tabella “Clienti” di cui conosci solo le prime due e le ultime due lettere, ma non le lettere in mezzo? In questo caso, la sintassi di ricerca si presenta così:

SELECT  *
FROM  clienti
WHERE  cognome  LIKE  'Ro_ni'
sql

Esclu­sio­ne di dati con NOT LIKE

È possibile invertire la query di ricerca con l’operatore SQL LIKE com­bi­nan­do­lo con SQL NOT. In questo modo puoi filtrare un record di dati in base ai risultati che non cor­ri­spon­do­no alla chiave o al modello di ricerca. Ad esempio, puoi cercare tutti i clienti il cui cognome non è identico a quello indicato:

SELECT  *
FROM  clienti
WHERE  cognome  NOT LIKE  'Rossini'
sql

Al­ter­na­ti­ve a SQL LIKE

SQL LIKE fa parte degli operatori di confronto, ma sono di­spo­ni­bi­li anche altri operatori che fun­zio­na­no in modo simile a LIKE. Tuttavia, i vantaggi di LIKE sono la maggiore fles­si­bi­li­tà e la maggiore pre­ci­sio­ne dei risultati offerte dall’uso di caratteri jolly di SQL, se­gna­po­sti e modelli, anche con chiavi di ricerca imprecise.

Gli operatori che hanno un fun­zio­na­men­to simile a SQL LIKE sono:

  • Uguale a =: filtra i risultati che cor­ri­spon­do­no esat­ta­men­te alla chiave di ricerca.
  • Diverso da !=: filtra i risultati che non cor­ri­spon­do­no esat­ta­men­te alla chiave di ricerca.
  • Minore di < o Maggiore di >: re­sti­tui­sce i valori numerici dei record di dati che sono minori o maggiori del valore cercato. Con <= o >= puoi filtrare inoltre i risultati che sono minori o uguali oppure maggiori o uguali al valore cercato.
Vai al menu prin­ci­pa­le