0Pricing
SQL Academy · Lezione

Aritmetica e operatori

Sommi, sottragga, moltiplichi e divida in SQL

Aritmetica e operatori è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.

Eseguire calcoli in SELECT

SQL non serve solo a recuperare righe. È possibile calcolare valori direttamente all'interno di una query usando gli operatori aritmetici.

In questa lezione imparerà ad aggiungere, sottrarre, moltiplicare e dividere usando colonne e valori letterali, ad assegnare un nome ai risultati e a capire come PostgreSQL determina il tipo di ogni risultato.

Immagini una tabella order_items con le colonne quantity e unit_price. È possibile calcolare il totale di una riga senza modificare il codice dell'applicazione.

SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;

I cinque operatori aritmetici

PostgreSQL supporta i consueti operatori:

  • + addizione
  • - sottrazione
  • * moltiplicazione
  • / divisione
  • % modulo (resto)

Funzionano sulle colonne numeriche e sui valori letterali proprio come in qualsiasi linguaggio di programmazione. La query seguente mostra ciascuno di essi in azione.

SELECT
  10 + 3  AS sum,
  10 - 3  AS difference,
  10 * 3  AS product,
  10 / 3  AS quotient,
  10 % 3  AS remainder;

Precedenza degli operatori

SQL segue le precedenze matematiche standard: *, / e % hanno una precedenza maggiore di + e -.

Usi le parentesi per rendere esplicita l'intenzione e sovrascrivere l'ordine predefinito. Le due espressioni seguenti producono risultati molto diversi.

SELECT
  2 + 3 * 4        AS without_parens,  -- 14
  (2 + 3) * 4      AS with_parens;     -- 20

Calcolare un prezzo scontato

Un'attività comune nel mondo reale consiste nell'applicare uno sconto percentuale. Si moltiplica il prezzo per (1 - discount_rate).

Qui discount_rate è memorizzato come frazione (0.15 = 15%). Le parentesi garantiscono che la sottrazione venga eseguita prima della moltiplicazione.

SELECT
  product_id,
  price,
  discount_rate,
  price * (1 - discount_rate) AS final_price
FROM products;

Calcoli tra colonne

Gli operandi non devono essere necessariamente valori letterali. È possibile combinare più colonne in un'unica espressione.

Di seguito si calcola l'utile netto per vendita: ricavi meno costi, moltiplicati per la quantità venduta.

SELECT
  sale_id,
  (sale_price - cost) * quantity AS profit
FROM sales;

Assegnare un nome ai risultati con AS

Le colonne calcolate ricevono nomi generati automaticamente, come ?column?, a meno che non si assegni loro un alias. Usi sempre AS per assegnare nomi leggibili.

Un alias consente inoltre di fare riferimento alla colonna in modo più chiaro negli strumenti e nei report.

SELECT
  base_salary,
  base_salary * 0.10 AS bonus,
  base_salary + base_salary * 0.10 AS total_pay
FROM employees;

Aritmetica in WHERE

È possibile usare l'aritmetica anche nella clausola WHERE, non solo in SELECT.

In questo modo si filtrano gli ordini il cui totale calcolato supera 100. Nota: applicare un'operazione matematica a una colonna può impedire l'uso di un indice; quando le prestazioni sono importanti, è quindi preferibile usare colonne non modificate nei filtri.

SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;

I tipi del risultato dipendono dagli operandi

PostgreSQL determina il tipo del risultato in base agli operandi. La somma di due interi produce un intero; se uno dei due lati è numeric o float, lo sarà anche il risultato.

Questo è particolarmente importante con la divisione, che verrà trattata più avanti. Per ora, osservi come la combinazione di tipi promuova il tipo del risultato.

SELECT
  pg_typeof(4 + 2)        AS int_type,      -- integer
  pg_typeof(4 + 2.0)      AS numeric_type,  -- numeric
  pg_typeof(4 * 1.5);                        -- numeric

L'operatore modulo

% restituisce il resto della divisione intera. È utile per la logica ciclica, ad esempio per indicare «ogni N-esima riga» o verificare se i valori sono pari o dispari.

Di seguito si individuano gli ID dei prodotti pari usando % 2 = 0.

SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;

Aggiornare i valori con l'aritmetica

L'aritmetica non è limitata a SELECT. È possibile usarla in UPDATE per modificare i valori memorizzati.

In questo modo si aumenta del 5% ogni prezzo di una categoria. L'espressione a destra viene valutata per ogni riga.

UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';

Attenzione a NULL

Qualsiasi operazione aritmetica che coinvolga NULL restituisce NULL, perché il risultato è sconosciuto.

Se una colonna potrebbe non avere un valore, la si avvolga con COALESCE per fornire un valore predefinito prima di eseguire i calcoli.

SELECT
  base + NULL                     AS is_null,      -- NULL
  base + COALESCE(bonus, 0)       AS safe_total
FROM payroll;

Verifica rapida

Qual è il risultato dell'espressione 2 + 6 / 2 in PostgreSQL?

Riepilogo

È possibile calcolare valori direttamente in SQL:

  • + - * / % sono gli operatori fondamentali
  • *, / e % hanno una precedenza maggiore di + e -; usi le parentesi per rendere esplicita l'intenzione
  • Assegni un alias alle colonne calcolate con AS
  • L'aritmetica funziona in SELECT, WHERE e UPDATE
  • Il tipo del risultato dipende dagli operandi e qualsiasi operando NULL rende il risultato NULL

Nella prossima lezione si passerà all'arrotondamento e al troncamento di questi risultati numerici.

Domande Frequenti

La lezione «Aritmetica e operatori» è gratuita?

Sì — il testo completo di «Aritmetica e operatori» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.

Cosa imparerò in «Aritmetica e operatori»?

Sommi, sottragga, moltiplichi e divida in SQL Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare SQL Academy?

Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Aritmetica e operatori»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione SQL Academy?

Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Aritmetica e operatori
  2. Arrotondamento e troncamento
  3. Divisione tra interi e decimali
  4. Funzioni matematiche utili
← Torna a SQL Academy