# L’operatore SQL `LIKE` per ricerche efficienti con SQL

L’operatore SQL `LIKE` fa parte dei **principali strumenti di SQL** con cui eseguire ricerche efficienti nei record di dati in base a determinati modelli. Questa funzionalità è resa possibile dall’utilizzo di segnaposti e modelli che ti permettono di restringere notevolmente i record di dati in cui eseguire la ricerca. In questo modo puoi semplificare e velocizzare le tue query in SQL.

## Che cos’è l’operatore SQL `LIKE`?

L’operatore SQL `LIKE` funziona come un detective alla ricerca di informazioni per le analisi dei dati. A seconda delle necessità, le ricerche nei record di dati e nelle sequenze di caratteri avvengono **per corrispondenze esatte o utilizzando segnaposti e modelli**. In questo ambito, i segnaposti di SQL sono detti anche caratteri jolly di SQL, utilizzati solo in combinazione con l’operatore `LIKE`. Essi permettono di filtrare i dati in modo efficiente e mirato e di ottimizzare notevolmente le prestazioni di questo linguaggio di interrogazione. L’operatore `LIKE` viene utilizzato spesso in combinazione con la clausola `WHERE` e con i [comandi SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) [SQL DELETE](https://www.ionos.it/digitalguide/server/configurazione/sql-delete/), [SQL SELECT](https://www.ionos.it/digitalguide/server/configurazione/sql-select/) o [SQL UPDATE](https://www.ionos.it/digitalguide/server/configurazione/sql-update/).

Consiglio Se non hai mai approfondito l’uso di [SQL](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/), dai un’occhiata alla nostra [introduzione a SQL mediante esempi](https://www.ionos.it/digitalguide/server/configurazione/introduzione-a-sql-mediante-esempi/).

## La sintassi dell’operatore `LIKE`

La sintassi fondamentale di `LIKE` si presenta così:

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

Sono disponibili i seguenti parametri:

- `SELECT`: definisce le colonne da cui richiamare i dati. Un asterisco `*` permette di considerare anche interi record di dati.
- `FROM`: indica le tabelle da considerare per la ricerca.
- `WHERE`: definisce concretamente le colonne per la query.
- `LIKE`: definisce il modello di ricerca. È possibile utilizzare sequenze di caratteri precise per corrispondenze esatte oppure i caratteri jolly di SQL.

## Caratteri jolly di SQL disponibili per SQL `LIKE`

I caratteri jolly di SQL devono essere utilizzati per la ricerca con SQL solo insieme all’operatore LIKE per cercare **risultati simili e corrispondenti**. I principali caratteri jolly sono:

- **Simbolo della percentuale `%`**: il `%` sostituisce 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 percentuale. Non è importante 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 sostituiscono 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 è sconosciuta.
- **Parentesi quadre `[…]`**: stabiliscono che la ricerca dell’insieme di caratteri è valida all’interno delle parentesi. Ad esempio, puoi utilizzare `[a-d]` per cercare una lettera fra A e D all’interno del modello di ricerca.

## Possibilità di applicazione offerte dall’operatore `LIKE`

Le possibilità di applicazione per query e ricerche con `LIKE` sono **quasi illimitate**. Ad esempio è possibile:

- Cercare varianti dei nomi che iniziano o terminano con una data stringa di caratteri, se non conosci il nome esatto
- Cercare estensioni degli indirizzi e-mail come *.it*
- Filtrare per corrispondenze esatte con chiavi di ricerca precise senza caratteri jolly di SQL
- Filtrare per prodotti con determinate parole nel loro nome o cercare determinate caratteristiche del prodotto
- Escludere dati, combinando gli operatori `NOT` e `LIKE`
- Filtrare i risultati, ad esempio per data, intervallo di date o valori numerici, come i prezzi dei prodotti

Consiglio Una gestione efficiente dei dati richiede una soluzione potente e sicura per il tuo sistema di gestione dei database. Con l’[hosting SQL server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL server di IONOS") di IONOS trovi offerte per server e hosting flessibili, adatte alle tue esigenze.

## Esempi pratici per la ricerca con SQL `LIKE`

A seconda dell’applicazione e del record di dati è possibile utilizzare diversi tipi di comandi `LIKE`. I nostri **esempi pratici** mostrano il funzionamento di SQL `LIKE`.

### Filtraggio con chiave di ricerca esatta

Immagina di dover cercare i clienti con un cognome specifico nella tabella “Clienti”. Utilizzando SQL `LIKE`, puoi richiamare tutti i clienti con quel cognome esatto. Lo stesso vale per la ricerca di valori numerici esatti, come i prezzi dei prodotti.

Esempio:

```sql
SELECT  *
FROM  clienti
WHERE  cognome  LIKE  'Rossi'
```

### Filtraggio con simbolo di percentuale

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

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

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

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

### Filtraggio 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ì:

```sql
SELECT  *
FROM  clienti
WHERE  cognome  LIKE  'Ro_ni'
```

### Esclusione di dati con `NOT LIKE`

È possibile **invertire la query di ricerca con l’operatore SQL `LIKE`** combinandolo con [SQL NOT](https://www.ionos.it/digitalguide/server/configurazione/sql-not/). In questo modo puoi filtrare un record di dati in base ai risultati che non corrispondono alla chiave o al modello di ricerca. Ad esempio, puoi cercare tutti i clienti il cui cognome non è identico a quello indicato:

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

## Alternative a SQL `LIKE`

SQL `LIKE` fa parte degli operatori di confronto, ma sono disponibili anche altri operatori che funzionano in modo simile a `LIKE`. Tuttavia, i vantaggi di `LIKE` sono la **maggiore flessibilità e la maggiore precisione dei risultati** offerte dall’uso di caratteri jolly di SQL, segnaposti e modelli, anche con chiavi di ricerca imprecise.

Gli operatori che hanno un funzionamento simile a SQL `LIKE` sono:

- **Uguale a `=`**: filtra i risultati che corrispondono esattamente alla chiave di ricerca.
- **Diverso da `!=`**: filtra i risultati che non corrispondono esattamente alla chiave di ricerca.
- **Minore di `<` o Maggiore di `>`**: restituisce 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.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-like/](https://www.ionos.it/digitalguide/server/configurazione/sql-like/) for AI/LLM consumption.