SQL - Funzioni Numeriche
Benvenuti, futuri maghi SQL! Oggi ci immergeremo nel mondo magico delle funzioni numeriche di SQL. Non preoccupatevi se non avete mai scritto una riga di codice prima – sarò la vostra guida amichevole in questa avventura. Alla fine di questo tutorial, manipolerete i numeri come un professionista!
Cos'è una Funzione Numerica SQL?
Immaginate di essere un cuoco in una cucina. Avete vari strumenti per tagliare, affettare e sminuzzare i vostri ingredienti. Le funzioni numeriche di SQL sono come quegli strumenti da cucina, ma per i numeri. Ci aiutano a eseguire calcoli e trasformazioni sui dati numerici del nostro database.
Funzioni Numeriche Comuni in SQL
Esaminiamo alcune delle funzioni numeriche più utili in SQL. Ho preparato una tabella comoda per voi da consultare:
Funzione | Descrizione | Esempio |
---|---|---|
ABS() | Restituisce il valore assoluto | ABS(-5) = 5 |
ROUND() | Arrotonda un numero a un numero specificato di decimali | ROUND(3.14159, 2) = 3.14 |
CEILING() | Restituisce il minimo intero maggiore o uguale al numero dato | CEILING(3.1) = 4 |
FLOOR() | Restituisce il massimo intero minore o uguale al numero dato | FLOOR(3.9) = 3 |
POWER() | Eleva un numero alla potenza specificata | POWER(2, 3) = 8 |
SQRT() | Restituisce la radice quadrata di un numero | SQRT(16) = 4 |
Ora, esploriamo ciascuna di queste funzioni in dettaglio con alcuni esempi pratici.
La Funzione ABS()
La funzione ABS() restituisce il valore assoluto di un numero. In termini semplici, rimuove il segno negativo se c'è.
SELECT ABS(-10) AS valore_assoluto;
Questa query restituirà:
valore_assoluto
--------------
10
Immaginate di calcolare la differenza tra due temperature. Non vi interessa se è positiva o negativa; volete solo sapere la magnitudine. È qui che ABS() entra in gioco!
La Funzione ROUND()
ROUND() è come quella persona che sempre arrotonda il conto nei ristoranti. Arrotonda un numero a un numero specificato di decimali.
SELECT ROUND(3.14159, 2) AS pi_arrotondato;
Risultato:
pi_arrotondato
----------
3.14
Questa funzione è super utile quando si tratta di valuta o quando si deve semplificare grandi numeri per i report.
Le Funzioni CEILING() e FLOOR()
Queste funzioni sono come gli overperformer e gli underperformer del mondo dei numeri. CEILING() sempre arrotonda all'intero superiore, mentre FLOOR() sempre arrotonda all'intero inferiore.
SELECT CEILING(3.1) AS valore_cielo, FLOOR(3.9) AS valore_pavimento;
Risultato:
valore_cielo | valore_pavimento
--------------+-----------------
4 | 3
Mi piace pensare a CEILING() come a un ottimista (sempre guardando in alto) e FLOOR() come a un pessimista (sempre guardando in basso). Usateli saggiamente nei vostri calcoli!
La Funzione POWER()
POWER() è come dare superpoteri ai vostri numeri! Eleva un numero alla potenza specificata.
SELECT POWER(2, 3) AS due_cubo;
Risultato:
due_cubo
---------
8
Questa funzione è particolarmente utile nei calcoli scientifici o quando si deve calcolare gli interessi composti (il vostro futuro sé vi ringrazierà per aver imparato questo!).
La Funzione SQRT()
SQRT() è la funzione della radice quadrata. È come trovare il numero che, moltiplicato per se stesso, ti dà il numero originale.
SELECT SQRT(16) AS radice_quadrata;
Risultato:
radice_quadrata
-----------
4
Curiosità: Gli antichi babilonesi usavano un metodo per calcolare le radici quadrate che è sorprendentemente simile a ciò che fanno oggi i computer!
Mettere Tutto Insieme
Ora che abbiamo imparato queste funzioni individualmente, vediamo come possiamo combinarle in uno scenario del mondo reale. Immaginate di analizzare i dati delle vendite per una piccola attività.
CREATE TABLE vendite (
id INT PRIMARY KEY,
nome_prodotto VARCHAR(50),
importo_vendita DECIMAL(10, 2),
sconto DECIMAL(5, 2)
);
INSERT INTO vendite VALUES
(1, 'Widget A', 100.00, 10.50),
(2, 'Gadget B', 75.25, 5.00),
(3, 'Doohickey C', 50.75, 2.25);
SELECT
nome_prodotto,
importo_vendita,
sconto,
ROUND(importo_vendita - sconto, 2) AS vendita_netta,
CEILING(POWER(vendita_netta, 1.05)) AS punti_fedelta
FROM
vendite;
Questa query calcola l'importo della vendita netta dopo lo sconto e assegna i punti fedeltà basati su un valore lievemente gonfiato della vendita netta. Ecco come si articola:
- Creiamo una tabella e inseriamo alcuni dati di esempio.
- Usiamo ROUND() per calcolare l'importo della vendita netta a due decimali.
- Usiamo POWER() per lievemente gonfiare la vendita netta (elevandola alla potenza di 1.05).
- Infine, usiamo CEILING() per arrotondare i punti fedeltà all'intero superiore.
Il risultato potrebbe apparire così:
nome_prodotto | importo_vendita | sconto | vendita_netta | punti_fedelta
--------------+-----------------+--------+---------------+----------------
Widget A | 100.00 | 10.50 | 89.50 | 115
Gadget B | 75.25 | 5.00 | 70.25 | 89
Doohickey C | 50.75 | 2.25 | 48.50 | 60
Conclusione
Congratulazioni! Avete appena fatto i vostri primi passi nel mondo delle funzioni numeriche di SQL. Ricordate, la pratica fa la perfezione. Provate a giocare con queste funzioni utilizzando i vostri dati o esempi. Non abbiate paura di fare errori – è così che impariamo!
Nel corso degli anni, ho scoperto che gli studenti che sperimentano e si divertono con SQL sono quelli che lo padroneggiano veramente. Quindi, andate avanti, calcolate, arrotondate e potenziate i vostri dati! Chi lo sa, potreste scoprire che lavorare con i numeri in SQL è soddisfacentente come risolvere un enigma difficile o creare una bellissima opera d'arte.
Continuate a programmare, continuate a imparare e, soprattutto, continuate a divertirvi con SQL!
Credits: Image by storyset