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

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
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