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:

  1. Funzioni aggregate

  2. Funzioni scalari

  3. Funzioni di finestra

  4. Funzioni di data e ora

  5. Funzioni stringa

  6. 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.