Le funzioni in SQL: tipologie ed esempi
Le funzioni in SQL sono strumenti potenti che permettono di manipolare, trasformare e analizzare i dati all'interno di un database. Comprendere come utilizzare le funzioni SQL può migliorare significativamente l'efficienza delle query e la qualità delle analisi dei dati.
In questa pagina, esploreremo in dettaglio le diverse tipologie di funzioni in SQL, fornendo esempi pratici e consigli per ottimizzare le query SQL.
Tipologie di Funzioni in SQL
Le funzioni in SQL possono essere suddivise in diverse categorie principali:
Funzioni aggregate
Funzioni scalari
Funzioni di finestra
Funzioni di data e ora
Funzioni stringa
Funzioni numeriche
Le funzioni aggregate in SQL
Le funzioni aggregate eseguono un calcolo su un insieme di valori e restituiscono un singolo valore. Sono comunemente utilizzate nelle operazioni di analisi e reportistica. Esempi di funzioni aggregate:
AVG(): Calcola la media di un insieme di valori.
COUNT(): Conta il numero di righe che corrispondono a una condizione specifica.
MAX(): Restituisce il valore massimo in un insieme di valori.
MIN(): Restituisce il valore minimo in un insieme di valori.
SUM(): Calcola la somma totale di un insieme di valori.
Supponiamo di avere una tabella vendite con le colonne id, prodotto, quantità e prezzo. Per calcolare la somma totale delle vendite:
SELECT SUM (prezzo * quantità) AS totale_vendite
FROM vendite;
Le funzioni scalari in SQL
Le funzioni scalari operano su un singolo valore e restituiscono un singolo valore. Sono utilizzate per manipolare i dati a livello di riga. Esempi di funzioni scalari:
UCASE() o UPPER(): Converte una stringa in maiuscolo.
LCASE() o LOWER(): Converte una stringa in minuscolo.
LEN() o LENGTH(): Restituisce la lunghezza di una stringa.
ROUND(): Arrotonda un numero a un numero specifico di decimali.
CONCAT(): Concatena due o più stringhe.
Ad esempio, per convertire i nomi dei prodotti in maiuscolo:
SELECT UPPER(prodotto) AS prodotto_maiuscolo
FROM vendite;
Funzioni di finestra in SQL
Le funzioni di finestra eseguono calcoli su un insieme di righe relativo alla riga corrente, permettendo di eseguire analisi più avanzate come calcoli cumulativi e classifiche. Esempi di funzioni di finestra includono:
ROW_NUMBER(): Assegna un numero di riga univoco a ciascuna riga di un set di risultati.
RANK(): Assegna un rango a ciascuna riga in un set di risultati con lacune nei ranghi.
DENSE_RANK(): Assegna un rango a ciascuna riga in un set di risultati senza lacune nei ranghi.
SUM() OVER(): Calcola la somma cumulativa dei valori.
Per assegnare un numero di riga a ciascuna vendita ordinata per data:
SELECT id, prodotto, data_vendita, ROW_NUMBER() OVER (ORDER BY data_vendita) AS numero_riga
FROM vendite;
Funzioni di data e ora in SQL
Le funzioni di data e ora sono utilizzate per manipolare e formattare i valori di data e ora. Esempi di Funzioni di Data e Ora:
NOW(): Restituisce la data e l'ora corrente.
CURDATE(): Restituisce la data corrente.
DATEADD(): Aggiunge un intervallo di tempo a una data.
DATEDIFF(): Calcola la differenza tra due date.
FORMAT(): Formatta una data.
Per calcolare quanto tempo è passato da un ordine rispetto alla data corrente:
SELECT id, data_ordine, DATEDIFF(NOW(), data_ordine) AS giorni_passati
FROM ordini;
Funzioni stringa in SQL
Le funzioni stringa sono utilizzate per manipolare le stringhe di testo. Esempi di funzioni stringa:
SUBSTRING(): Estrae una porzione di una stringa.
TRIM(): Rimuove gli spazi iniziali e finali da una stringa.
REPLACE(): Sostituisce una parte di una stringa con un'altra.
CHAR_LENGTH(): Restituisce la lunghezza di una stringa.
Per estrarre il primo carattere del nome del prodotto:
SELECT SUBSTRING(prodotto, 1, 1) AS primo_carattere
FROM vendite;
Funzioni numeriche in SQL
Le funzioni numeriche sono utilizzate per eseguire operazioni matematiche sui valori numerici. Esempi di funzioni numeriche, includono:
ABS(): Restituisce il valore assoluto di un numero.
CEILING(): Arrotonda un numero per eccesso.
FLOOR(): Arrotonda un numero per difetto.
POWER(): Restituisce il valore di un numero elevato a una potenza specifica.
Per calcolare il quadrato del prezzo di ciascun prodotto:
SELECT prodotto, prezzo, POWER(prezzo, 2) AS prezzo_quadrato
FROM vendite;
Conclusione
Le funzioni in SQL sono strumenti essenziali per manipolare, trasformare e analizzare i dati. Utilizzando le funzioni aggregate, scalari, di finestra, di data e ora, stringa e numeriche, è possibile creare query potenti e ottimizzate.