MySQL è corredato nativamente da un largo numero di funzioni atte a svolgere le più disparate funzioni. A partire da questa lezione cercheremo di affrontare, anche se in modo succinto, le principali di queste al fine di fornire al lettore gli strumenti essenziali per lavorare col DBMS.
Da un punto di vista espositivo suddivideremo le funzioni di MySQL oggetto della nostra attenzione in quattro categorie:
- Funzioni per le stringhe
- Funzioni matematiche e di aggregazione
- Funzioni per le date
- Funzioni condizionali
Ciascuna lezione sarà corredata da una parte teorica e da una serie di esempi pratici per facilitare la comprenisone dei concetti illustrati da parte del lettore.
All’interno di questa lezione ci occuperemo delle funzioni per la gestione delle stringhe.
Attraverso questa tipologia di funzioni è possibile manipolare le stringhe all’interno delle query. E’ evidente che il loro principale ambito di applicazione saranno i campi che possono contenere valori testuali (CHAR, VARCHAR, TEXT, BLOB, ENUM e SET).
Vediamo di seguito alcune delle funzioni più interessanti di questa famiglia.
TRIM, LTRIM e RTRIM
Queste tre funzioni servono ad eliminare gli spazi vuoti lasciati all’inizio e/o alla fine di una stringa. Più precisamente la funzione LTRIM rimuoverà gli spazi prima del testo, RTRIM quelli dopo il testo e TRIM entrambi.
SELECT TRIM(testo) FROM articoli WHERE id = 1;
Supponendo che il contenuto originale del campo sia " bla bla bla " otterremo "bla bla bla".
REPLACE
La funzione REPLACE consente di effettuare delle sostituzioni all’interno di una stringa. Ad esempio:
SELECT REPLACE(nome,'o','a') FROM amici WHERE nome = 'Mario';
La query nel nostro esempio restituirà "Maria" in quanto lo "o" finale è stata sostituita con la "a".
SUBSTRING e MID
Queste due funzioni consentono di di "tagliare" delle porzioni di una stringa. Con SUBSTRING la stringa viene mostrata a partire dal carattere specificato (compreso). Ad esempio:
SELECT SUBSTRING(nome,3) FROM amici WHERE id = 1;
Supponendo che il valore originale del campo "nome" per l’id 1 sia "Mario" otterremo in risposta alla nostra query il valore "rio".
La funzione MID, invece, ci consente di estrarre la porzione centrale di una stringa specificando (oltre alla stringa su cui operare, ovviamente) il carattere di partenza ed il numero di caratteri da includere:
SELECT MID(nome,2,3) FROM amici WHERE id = 1;
la nostra query restituirà: "ari".
CONCAT
La funzione CONCAT è utilizzata per concatenare due o più stringhe. Ad esempio:
SELECT CONCAT(nome,cognome) FROM amci WHERE id = 1;
Restituirà: "MarioRossi".
Per ottenere un output più "aggrazziato" avremmo potuto utilizzare:
SELECT CONCAT(nome,' ',cognome) FROM amci WHERE id = 1;
la quale restituirà: "Mario Rossi".
UCASE e LCASE
L funzioni UCASE e LCASE di MySQL trasformano il testo rispettivamente in maiuscolo e minuscolo. Ad esempio supponiamo di vole estrarre il nome del record con id 1 (che, come già visto in precedenti esempi, corrisponde a "Mario"):
SELECT UCASE(nome) FROM amici WHERE id = 1;
Restituirà "MARIO", mentre:
SELECT LCASE(nome) FROM amici WHERE id = 1;
Restituirà "mario".
Per una visione più completa e dettagliata delle funzioni per la manipolazione delle stringhe rimando lla documentazione ufficiale di MySQL.