In questo articolo vedremo alcune funzioni molto interessanti del linguaggio SQL, in particolare per manipolare stringhe, numeri e date.
- Funzioni per stringhe
TRIM, LTRIM, RTRIM, queste funzioni vengono utilizzate rispettivamente per eliminare gli spazi prima e dopo una stringa, gli spazi a sinistra di una stringa (prima), gli spazi a destra di una stringa (dopo), ad esempio
SELECT TRIM(<nome campo>) FROM <tabella>
questa query restituirà tutti i dati del campo selezionato della rispettiva tabella senza spazi prima e dopo, mentre
SELECT LTRIM(<nome campo>) FROM <tabella>
restituirà tutti i dati del campo selezionato della rispettiva tabella senza spazi prima
SELECT RTRIM(<nome campo>) FROM <tabella>
restituirà tutti i dati del campo selezionato della rispettiva tabella senza spazi dopo.
SUBSTRING, questa funzione è utilizzata per ottenere una porzione di stringa, ad esempio
SELECT SUBSTRING(<nome campo>, 1, 100) FROM <tabella>
questa query restituirà tutti i dati del campo selezionato della rispettiva tabella, a partire dal primo carattere (1) fino ad un massimo di 100 caratteri (100).
UCASE, LCASE, vengono utilizzate rispettivamente per formato maiuscolo e formato minuscolo, ad esempio
SELECT UCASE(<nome campo>) FROM <tabella>
restituisce tutti i dati del campo selezionato della rispettiva tabella in formato maiuscolo, mentre
SELECT LCASE(<nome campo>) FROM <tabella>
in minuscolo.
- Funzioni per numeri
MIN, MAX, queste funzioni vengono utilizzate rispettivamente per ottenere il valore minimo e massimo di un dato campo di una tabella, ad esempio
SELECT MIN(<nome campo>) FROM <tabella>
restituirà il valore minimo del campo selezionato della tabella corrispondente, mentre
SELECT MAX(<nome campo>) FROM <tabella>
il valore massimo.
AVG, calcola la media dei valori di un dato campo di una tabella, ad esempio
SELECT AVG(<nome campo>) FROM <tabella>
restituirà la media del campo selezionato della tabella corrispondente.
FLOOR, CEIL, queste funzioni arrotondano un numero intero rispettivamente al valore precedente più basso, al valore successivo più alto, ad esempio
SELECT FLOOR(<nome campo>) FROM <tabella>
restituisce tutti i dati del campo selezionato arrotondati al valore precedente più basso, mentre
SELECT CEIL(<nome campo>) FROM <tabella>
al valore successivo più alto.
In particolare esiste un'altra funzione molto interessante ROUND che consente di settare il numero di decimali
SELECT ROUND(<nome campo>, 2) FROM <tabella>
questa query restituisce tutti i dati del campo selezionato della relativa tabella arrotondati a due cifre decimali.
SUM, questa funzione restituisce la somma totale di una colonna numerica
SELECT SUM(<nome campo>) FROM <tabella>
SELECT SUM(<nome campo>) FROM <tabella> WHERE <condizione>
- Funzioni per date
CURDATE, CURTIME, NOW, queste funzioni generano rispettivamente la data corrente in formato "yyyy-mm-dd" (anno, mese, giorno), l'ora corrente in formato "H:i:m" (ora, minuti, secondi), la data corrente e l'ora corrente negli stessi formati, ad esempio
UPDATE <tabella> SET <nome campo> = CURDATE() WHERE <condizione>
salva nel campo indicato nella condizione specifica la data corrente
UPDATE <tabella> SET <nome campo> = CURTIME() WHERE <condizione>
salva nel campo indicato nella condizione specifica l'ora corrente
UPDATE <tabella> SET <nome campo> = NOW() WHERE <condizione>
salva nel campo indicato nella condizione specifica la data e l'ora corrente.
Con SQL è possibile anche cambiare il formato data utilizzando la funzione DATE_FORMAT, ad esempio possiamo cambiare una data in formato americano in un formato diverso
SELECT DATE_FORMAT(<nome campo>, '%d/%m/%Y %H:%i:%s') FROM <tabella>;
supponendo che il campo selezionato sia in formato yyyy-mm-dd H:i:s, questa query restituisce tutte le date in un formato dd/mm/yyyy H:i:s.