Perché imparare SQL oggi?
Un'azienda memorizza i propri clienti, ordini, prodotti e pagamenti in dati strutturati. SQL permette di porre una domanda specifica a questi dati: trovare un ordine, calcolare un fatturato, riconciliare i clienti con i loro acquisti o verificare un'anomalia.
SQL è una lingua. PostgreSQL, MySQL e SQL Server sono sistemi di gestione di database che comprendono ciascuno un dialetto di questa lingua. Quindi puoi apprendere i principi comuni prima di specializzarti in un motore.
Un foglio di calcolo rimane molto utile per un'analisi una tantum. Un database diventa particolarmente rilevante quando i dati sono numerosi, collegati, condivisi o aggiornati da più processi.
Inizia con la domanda, non con il codice
Prima di scrivere una richiesta, riformulare la necessità in una frase verificabile. "Quali clienti hanno ordinato?" » e “Quali clienti hanno pagato?” » non designano lo stesso perimetro. Questa precisione evita di produrre un risultato tecnicamente valido ma falso per la professione.
Individua poi la granularità: una linea rappresenta un cliente, un ordine o un prodotto ordinato? Infine, identifica le colonne utili e il controllo che verificherà il risultato.
- Domanda: quale risultato dovrebbe essere consegnato?
- Ambito: quali linee includere o escludere?
- Granularità: cosa rappresenta esattamente una riga del risultato?
- Controllo: quale totale o campione può rilevare un errore?
Leggi e filtra con SELECT, FROM e WHERE
Immaginiamo una tabella orders contenente l'ID ordine, città, stato e importo. SELECT sceglie le colonne da visualizzare, FROM indica la tabella consultata e WHERE mantiene solo le righe che soddisfano una condizione.
La seguente query cerca ordini pagati di almeno € 100. Lo smistamento colloca prima gli importi più elevati per facilitare l'ispezione visiva.
- I testi sono posti tra apostrofi.
- I numeri vengono confrontati senza apostrofi.
- AND richiede che entrambe le condizioni siano vere.
- ORDER BY modifica l'ordine di visualizzazione, non i dati memorizzati.
SELECT order_id, city, amount
FROM orders
WHERE status = 'paid'
AND amount >= 100
ORDER BY amount DESC;Calcola un indicatore con GROUP BY
Una domanda di analisi richiede spesso il raggruppamento di più righe. Per conoscere il fatturato pagato per città, SQL somma gli importi con SUM e crea un gruppo per città.
Ogni colonna visualizzata che non è aggregata dovrebbe generalmente apparire in GROUP BY. Il filtro resta applicato prima del calcolo: un ordine annullato non concorre al fatturato.
SELECT
city,
SUM(amount) AS revenue
FROM orders
WHERE status = 'paid'
GROUP BY city
ORDER BY revenue DESC;Collega i tavoli con JOIN
Il nome del cliente appartiene alla tabella customers, mentre l'importo appartiene a orders. Uno join ricostituisce la relazione utilizzando una chiave comune, qui customer_id.
La query seguente calcola l'importo pagato per cliente. INNER JOIN mantiene solo gli ordini associati a un cliente esistente. Prima dell'aggregazione, verificare che join non moltiplichi le righe in modo imprevisto.
SELECT
c.customer_id,
c.full_name,
SUM(o.amount) AS total_paid
FROM customers AS c
INNER JOIN orders AS o
ON o.customer_id = c.customer_id
WHERE o.status = 'paid'
GROUP BY c.customer_id, c.full_name
ORDER BY total_paid DESC;In quale ordine dovrei imparare SQL?
Una progressione efficace alterna un concetto breve e una pratica immediata. Inizia interrogando una tabella, quindi aggiungi aggregazioni e join. Le funzioni CTE e finestra diventano utili quando queste basi sono stabili.
Non misurare il tuo livello in base al numero di parole chiave memorizzate. Misuralo in base alla tua capacità di spiegare il risultato, individuare un errore di ambito e adattare una query a una nuova domanda.
- Passaggio 1: valori SELECT, WHERE, ORDER BY e NULL.
- Passaggio 2: COUNT, SUM, AVG, GROUP BY e HAVING.
- Passaggio 3: INNER JOIN, LEFT JOIN e controllo della granularità.
- Passaggio 4: sottoquery, CTE, CASE e funzioni finestra.
- Fase 5: progetti aziendali e ottimizzazione delle query.
Errori che rallentano i principianti
Copiare una soluzione senza prevederne il risultato dà l'impressione di velocità, ma crea poca autonomia. Fai un primo tentativo, leggi il messaggio di errore, quindi utilizza un suggerimento mirato prima di mostrare la correzione.
Non sempre gli errori più costosi sono sintattici. Uno join sulla chiave sbagliata, un filtro posizionato troppo tardi o il conteggio sulla granularità sbagliata possono produrre una cifra credibile ma errata.
- Utilizzo di
SELECT *senza sapere quali colonne sono necessarie. - Confondi WHERE, che filtra le righe, e HAVING, che filtra i gruppi.
- Dimentica che
NULLè testato con IS NULL o IS NOT NULL. - Fidati del risultato senza controllare poche righe e un totale.
Trasforma questa guida in pratica
Se stai iniziando da zero, segui il percorso per principianti in ordine ed esegui ogni esempio. Se hai già scritto qualche quesito, il test di livello ti indicherà le competenze da consolidare. Il catalogo degli esercizi permette poi di lavorare su un concetto specifico.
Costruisci basi solide.
Segui Fondamenti SQL dalla prima tabella a un’analisi verificata.
