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!
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