Le funzioni SQL

In SQL sono disponibili funzioni molto interessanti per manipolare stringhe, numeri e date in un database relazionale.

Pubblicato da ,
Ultima modifica

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.