Il SQL ha questo di particolare: non si impara guardando. Una query si capisce quando la si scrive, quando si sbaglia, e quando si vedono tornare tre righe invece di trenta. Bisogna però avere un database da interrogare.
Il SQL è uno dei linguaggi più accessibili che si possano insegnare: la sintassi si legge quasi come una frase, e un principiante produce una query utile in pochi minuti. L'ostacolo è altrove.
Prima di scrivere un solo SELECT, serve un database a disposizione. Ed è lì che i corsi SQL perdono la prima mezza giornata:
DELETE maldestro distrugge i dati di tutto il gruppo.La soluzione più semplice è dare a ciascuno il proprio database, nel proprio browser, già popolato. Nessuno installa niente, nessuno rompe il lavoro degli altri, e un DROP TABLE sfortunato costa solo un ricaricamento della pagina.
La scelta dell'insieme di dati pesa più di quanto si immagini sulla riuscita di un corso. Un database troppo ricco obbliga a spiegare il mestiere prima del linguaggio; un database troppo povero non permette nessuna join interessante.
Il modello che funziona dappertutto sta in quattro tabelle: clienti, prodotti, ordini e le righe di quegli ordini. Tutti ne capiscono il senso senza premessa, e questa struttura basta a coprire l'essenziale del programma:
Tieni il volume modesto: una decina di righe per tabella. Un risultato che si può leggere per intero a schermo permette di verificare da sé che la query ha fatto quello che si credeva.
La progressione classica dei manuali segue l'ordine della sintassi. L'ordine che funziona in aula segue la difficoltà reale, e non si trova dove si aspetta.
Comincia dal leggere, non dallo scrivere. Una query già scritta, che si esegue e di cui si osserva il risultato, installa l'essenziale: una query restituisce una tabella. Poi fagliela modificare — cambiare una città, aggiungere un ordinamento — prima di chiederne una scritta da zero.
Introduci la join presto. È controintuitivo, ma la join è il cuore del SQL e la fonte della maggior parte dei blocchi. Rinviarla a fine programma fa credere che il resto sia acquisito, mentre metà del gruppo si ferma già alla prima.
Tieni il GROUP BY per la fine. Il raggruppamento richiede di pensare per insiemi invece che per righe: è un vero salto concettuale, che merita tempo ed esempi visivi.
Tre malintesi tornano in ogni gruppo, qualunque sia il livello. Anticiparli fa guadagnare un'ora.
FROM, nessuna condizione di collegamento, e la query restituisce il prodotto di tutte le righe. Il risultato è enorme e nessuno capisce perché. Mostralo di proposito una volta: è la dimostrazione più efficace.Questi tre casi hanno un punto in comune: la query non va in errore. Restituisce un risultato falso, in silenzio. Da qui l'importanza di lavorare su un insieme di dati abbastanza piccolo da poter verificare il risultato a occhio.
Il SQL si presta particolarmente bene alla correzione collettiva: una query sta in poche righe, e il risultato è immediatamente visibile a tutti.
Il dispositivo più efficace è proiettare il tuo schermo mentre ciascuno lavora nel proprio. Tu scrivi una query, compare da loro; la adattano senza doverla ricopiare a memoria. Al momento di correggere, mostra prima il risultato atteso — la tabella, non la query. Il gruppo cerca allora la strada, che è esattamente l'esercizio.
Tieni la soluzione scritta in anticipo ma nascosta, e rivelala solo dopo. Una soluzione visibile troppo presto trasforma un esercizio di ragionamento in un esercizio di copiatura.
Un database nel browser copre tutto quello che si interroga. Non copre quello che si amministra, ed è una distinzione che conviene porre con chiarezza davanti al gruppo.
Restano da trattare in un ambiente reale: i permessi e gli utenti, i backup, l'ottimizzazione e gli indici su volumi consistenti, le transazioni concorrenti, e le differenze di dialetto fra i motori. Questi temi appartengono più al mestiere di amministratore che alla scrittura di query.
Per un corso introduttivo, un aggiornamento o un modulo SQL dentro un corso più ampio, il browser basta e avanza — e libera la mezza giornata che si passava a installare.
Non per imparare a scrivere query. Un database SQLite che gira nel browser copre il filtro, gli ordinamenti, gli aggregati, le join e i raggruppamenti — cioè l'essenziale di un corso introduttivo. Un server diventa necessario per affrontare l'amministrazione: permessi, backup, indici, transazioni.
No, se ciascuno ha il proprio database, nel proprio browser. È il vantaggio principale di questo approccio: un DELETE o un DROP TABLE maldestro tocca solo la copia di chi lo ha scritto, e un ricaricamento della pagina rimette tutto a posto.
Quattro tabelle bastano: clienti, prodotti, ordini e righe d ordine. Tutti ne capiscono il senso senza spiegazioni di mestiere, e questa struttura permette già il filtro, gli aggregati, la join semplice e il raggruppamento. Tieni una decina di righe per tabella, perché un risultato resti verificabile a occhio.
Prima far eseguire e modificare query esistenti, introdurre la join presto — è il vero punto di blocco — e tenere il raggruppamento per la fine, perché richiede di pensare per insiemi invece che per righe.
Installare un ambiente su venti postazioni si mangia l'inizio di ogni lezione. Ecco come far scrivere ed eseguire codice nel browser, cosa permette davvero, e dove sono i limiti.
Primi passiUn esercizio scritto una volta dovrebbe servire dieci volte. Ecco come montare una banca che si ritrova, senza dedicarle più tempo di quanto se ne guadagni.
ConduzioneLa scaletta che si scrive per un fascicolo e quella che si tiene sotto gli occhi in aula non hanno lo stesso contenuto. Ecco come scrivere la seconda.
PedagogiaPython, JavaScript, HTML/CSS e SQL che girano nel browser, 36 quiz di informatica pronti da giocare, una banca di esercizi e il registro firme: il quadro completo per un formatore in sviluppo.
Crea la tua prima sala interattiva in meno di 5 minuti. Piano gratuito, senza carta di credito.
Inizia gratuitamente