5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 40

16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
Gli operatori LIKE e NOT LIKE
Un operatore piuttosto " particolare " è LIKE il quale consente di effettuare dei " paragoni di somiglianza ", che permette di restituire tutti i record / righe che matchano( corrispondono) secondo un modello di corrispondenza( chiamiamolo stringa _ ricerca)
L ' operatore LIKE utilizza, per costruire tale modello di corrispondenza, due caratteri speciali da inserire dentro la stringa _ ricerca:
%( percentuale): questo simbolo sostituisce un insieme di caratteri in una stringa.
Esempio. Con l ' operatore di confronto LIKE la stringa di ricerca " Ro % a " seleziona tutte le parole di qualsiasi lunghezza che iniziano per " Ro " e finiscono in " a ". Ad esempio, Roma, Romagna, Romania, ecc.
_( underscore): questo simbolo sostituisce un unico carattere in una stringa.
Esempio. Con l ' operatore di confronto LIKE la stringa di ricerca " Ro _ a " seleziona le parole di 4 lettere che iniziano per " Ro " e terminano in " a ". Ad esempio, Roma, Rosa, ecc.
Sintassi
SELECT < Attributo _ 1 > [, < Attributo _ 2 >,…< Attributo _ N >] FROM < Tabella _ 1 > [, < Tabella _ 2 >,…< Tabella _ N >] WHERE( Attributo LIKE stringa _ ricerca) [ ESCAPE '< carattere _ escape '];
N. B. I caratteri speciali % e _ devono essere inseriti dentro la stringa di ricerca, all’ interno degli apici singoli o dei doppi apici
La specifica ESCAPE '< carattere _ escape ' si utilizza se può capitare il caso in cui il carattere underscore o la percentuale sia compreso nei dati della tabella. In MySql è possibile anche anteporre al carattere % o _ il backslash '\'.
L’ operatore NOT LIKE è l ' esatta negazione di ciò che restituisce l ' operatore LIKE, cioè restituirà tutti i record / righe che non corrispondono secondo il modello di corrispondenza stringa _ ricerca
Supponiamo ad esempio di voler estrarre dalla nostra tabella " Amico " tutti i record corrispondenti ad un nome che inizia per " Maria ":
SELECT * FROM Amico WHERE( Nome LIKE ' Maria %');
Questa query restituirà nomi del tipo:
Maria Maria Rosa Maria Antonietta
Se invece avessimo scritto la clasuola WHERE in questo modo:
SELECT * FROM Amico WHERE( Nome LIKE '% Maria ');
Avremmo ottenuto in risposta:
Maria Anna Maria
La differenza, come si può notare, è data dalla posizione del carattere percentuale(%) che sta ad indicare rispettivamente " qualsiasi carattere dopo " e " qualsiasi carattere prima ".
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 40