SQL - Espressioni

Ciao a tutti, futuri maghi SQL! Oggi ci imbarchiamo in un viaggio emozionante nel mondo delle espressioni SQL. Non preoccupatevi se siete nuovi al programming - sarò il vostro guida amichevole, e affronteremo tutto passo per passo. Alla fine di questo tutorial, sarete in grado di creare espressioni SQL come un professionista!

SQL - Expressions

Cos'è un'Espressione SQL?

Iniziamo dalle basi. Un'espressione SQL è come una formula o un calcolo che puoi utilizzare nelle tue query SQL. È una combinazione di uno o più valori, operatori e funzioni SQL che valutano a un valore. Pensa a esso come la salsa segreta che aggiunge sapore alle tue query del database!

Per esempio, diciamo che hai una tabella di prodotti e vuoi applicare uno sconto del 10% a tutti i prezzi. Potresti usare un'espressione come questa:

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

In questa query, price * 0.9 è la nostra espressione SQL. Sta prendendo il prezzo e moltiplicandolo per 0.9 (che è lo stesso di sottrarre il 10%).

Espressioni Booleane SQL

Ora, immergiamoci nelle espressioni Booleane. Queste sono come le domande vero/falso del mondo SQL. Sempre resulting in TRUE, FALSE, o NULL (che significa "sconosciuto").

Le espressioni Booleane sono super utili quando vuoi filtrare i tuoi dati o prendere decisioni nelle tue query. Ecco alcuni operatori comuni utilizzati nelle espressioni Booleane:

Operatore Descrizione
= Uguale a
<> Diverso da
> Maggiore di
< Minore di
>= Maggiore o uguale a
<= Minore o uguale a
AND AND logico
OR OR logico
NOT NOT logico

Vediamo questi in azione con alcuni esempi:

-- Trova tutti i prodotti con un prezzo superiore a $100
SELECT * FROM products WHERE price > 100;

-- Trova tutti gli ordini degli ultimi 30 giorni
SELECT * FROM orders WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';

-- Trova tutti i clienti attivi a New York o California
SELECT * FROM customers
WHERE (state = 'NY' OR state = 'CA') AND is_active = TRUE;

In ciascuno di questi esempi, la parte dopo la clausola WHERE è un'espressione Booleana. È come fare una domanda sì/no per ciascuna riga dei dati.

Espressioni Numeriche SQL

Proseguiamo con le espressioni numeriche. Queste sono come i problemi di matematica dell'SQL - coinvolgono numeri e operazioni aritmetiche.

Ecco gli operatori aritmetici di base che puoi utilizzare:

Operatore Descrizione
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
% Modulo (resto)

Guardiamo alcuni esempi:

-- Calcola il valore totale dell'inventario
SELECT product_name, quantity, price, quantity * price AS total_value
FROM inventory;

-- Calcola l'età dei dipendenti
SELECT first_name, last_name, EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM birth_date) AS age
FROM employees;

-- Calcola la percentuale di budget speso
SELECT project_name, budget, spent, (spent / budget) * 100 AS percent_spent
FROM projects;

In questi esempi, stiamo utilizzando espressioni numeriche per eseguire calcoli sui nostri dati. Questo è incredibilmente utile per estrarre nuovi insight dai dati esistenti.

Espressioni Date SQL

Ultimo ma non meno importante, parliamo delle espressioni date. Gestire le date in SQL può essere complicato, ma è anche estremamente potente. Le espressioni date ti permettono di manipolare e confrontare le date nelle tue query.

Ecco alcune funzioni comuni di date:

Funzione Descrizione
CURRENT_DATE Restituisce la data corrente
CURRENT_TIMESTAMP Restituisce la data e l'ora corrente
DATE_ADD Aggiunge un intervallo di tempo specificato a una data
DATE_SUB Sottrae un intervallo di tempo specificato da una data
DATEDIFF Calcola la differenza tra due date

Vediamo queste in azione:

-- Trova gli ordini effettuati oggi
SELECT * FROM orders WHERE order_date = CURRENT_DATE;

-- Trova i clienti che non hanno effettuato un ordine negli ultimi 90 giorni
SELECT * FROM customers
WHERE customer_id NOT IN (
SELECT DISTINCT customer_id
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '90 days'
);

-- Calcola quanti giorni fa è stato effettuato ciascun ordine
SELECT order_id, order_date,
DATEDIFF(CURRENT_DATE, order_date) AS days_ago
FROM orders;

Queste espressioni date ti permettono di eseguire operazioni complesse con le date, che è cruciale per analizzare dati basati sul tempo.

E voilà, ragazzi! Abbiamo viaggiato attraverso il mondo delle espressioni SQL, dalla logica Booleana ai calcoli numerici fino al viaggio nel tempo (beh, più o meno). Ricorda, la pratica fa la perfezione, quindi non aver paura di sperimentare con queste espressioni nelle tue query.

Prima di concludere, ecco una piccola battuta SQL per voi: Perché l'amministratore del database ha lasciato sua moglie? Avere troppe relazioni one-to-many! (Ba dum tss!)

Buon querying, e possa i vostri join essere sempre rapidi e le vostre query mai scadere!

Credits: Image by storyset