1. La Sintassi Base
La struttura minima di una query è composta da SELECT (cosa vuoi vedere) e FROM (da dove lo prendi).
SQL
SELECT colonna1, colonna2
FROM nome_tabella;
- L’asterisco (
*): Se vuoi selezionare tutte le colonne di una tabella.- Esempio:
SELECT * FROM iscritti;
- Esempio:
2. Filtrare i Dati: WHERE
Senza filtri, la SELECT ti restituisce ogni singola riga. Con WHERE applichi delle condizioni.
- Operatori di confronto:
=,<>,>,<,>=,<= - Operatori logici:
AND,OR,NOT - LIKE: Usato per cercare pattern nelle stringhe (usa
%come jolly).- Esempio:
WHERE nome LIKE 'A%'(nomi che iniziano per A).
- Esempio:
- BETWEEN: Per intervalli di valori.
- Esempio:
WHERE idiscritto BETWEEN 1 AND 10;
- Esempio:
- IN: Per cercare valori in un set specifico.
- Esempio:
WHERE nazione IN ('Italia', 'Francia');
- Esempio:
3. Ordinare i Risultati: ORDER BY
I dati nel database non hanno un ordine garantito. Devi imporlo tu.
- ASC: Ordine crescente (default).
- DESC: Ordine decrescente.
- Esempio:
SELECT * FROM iscritti ORDER BY cognome DESC;
- Esempio:
4. Evitare Duplicati: DISTINCT
Se una colonna ha valori ripetuti e vuoi vedere solo i valori unici, usa DISTINCT subito dopo la SELECT.
- Esempio:
SELECT DISTINCT nazione FROM iscritti;(ti restituisce l’elenco delle nazioni presenti senza ripetizioni).
5. Funzioni di Aggregazione
Servono per fare calcoli sui dati “al volo”:
| Funzione | Descrizione |
| COUNT() | Conta il numero di righe. |
| SUM() | Somma i valori di una colonna numerica. |
| AVG() | Calcola la media. |
| MIN() / MAX() | Trova il valore minimo o massimo. |
Ecco 5 esempi pratici basati sulla tua tabella iscritti. Le funzioni di aggregazione sono fondamentali perché trasformano un insieme di righe in un unico valore riassuntivo.
ESEMPI FUNZIONI DI AGGREGAZIONE
1. COUNT() – Contare le righe
Questa funzione serve a sapere “quanti” elementi ci sono.
- Esempio: Quanti iscritti totali ci sono nel database?
SQL
SELECT COUNT(*) AS totale_iscritti
FROM iscritti;
2. COUNT(colonna) vs COUNT(DISTINCT)
Puoi contare i valori di una colonna specifica (escludendo i NULL) o contare solo i valori unici.
- Esempio: Quante nazioni diverse sono rappresentate tra gli iscritti?
SQL
SELECT COUNT(DISTINCT nazione) AS numero_nazioni
FROM iscritti;
3. MIN() e MAX() – Valori estremi
Si usano per trovare il valore più basso o più alto. Funzionano sia con i numeri che con le date o i testi (ordine alfabetico).
- Esempio: Trova il primo e l’ultimo cognome in ordine alfabetico.
SQL
SELECT MIN(cognome) AS primo_cognome, MAX(cognome) AS ultimo_cognome
FROM iscritti;
4. SUM() – Sommare valori
Si usa esclusivamente su colonne numeriche. Immaginiamo che ogni iscritto debba pagare una quota associativa (anche se nel tuo schema non c’è, è l’uso tipico).
- Esempio (ipotetico): Somma totale delle quote versate.
SQL
SELECT SUM(quota_versata) AS incasso_totale
FROM iscritti;
5. AVG() – Calcolare la media
Calcola la media aritmetica dei valori in una colonna.
- Esempio (ipotetico): Qual è l’età media degli iscritti? (Supponendo una colonna
eta).
SQL
SELECT AVG(eta) AS eta_media
FROM iscritti
WHERE nazione = 'Italia';
6. Raggruppare i Dati: GROUP BY e HAVING
Questi sono i comandi più avanzati per le statistiche.
- GROUP BY: Raggruppa le righe che hanno gli stessi valori in colonne specifiche. Si usa quasi sempre con le funzioni di aggregazione.
- HAVING: È il “WHERE” dei gruppi. Filtra i risultati dopo che sono stati raggruppati.
Esempio: Conta quanti iscritti ci sono per ogni comune, ma mostra solo i comuni con più di 5 iscritti.
SQL
SELECT comune, COUNT(*)
FROM iscritti
GROUP BY comune
HAVING COUNT(*) > 5;
Regola d’oro: GROUP BY
Ricorda che se vuoi usare una funzione di aggregazione insieme a una colonna normale, devi sempre usare GROUP BY.
- Esempio combinato: Quanti iscritti ci sono per ogni provincia?
SQL
SELECT provincia, COUNT(*) as quantita
FROM iscritti
GROUP BY provincia;
7. Alias: AS
Puoi rinominare temporaneamente una colonna o una tabella per rendere il risultato più leggibile.
- Esempio:
SELECT nome AS 'Nome Iscritto', cognome AS 'Cognome Iscritto' FROM iscritti;
L’ordine “sacro” della query
Ricorda che l’SQL è pignolo. I comandi devono seguire sempre questo ordine:
SELECTFROMWHEREGROUP BYHAVINGORDER BY
Lascia un commento
Devi essere connesso per inviare un commento.