Osservazioni finali
Grazie per essere rimasto fino alla fine! Spero sia stata una lettura piacevole e illuminante.
Arrivati a questo punto, abbiamo coperto la maggior parte dei più importanti comandi e funzioni di SQL, ma spero che gli insegnamenti più importanti riguardino le tecniche e le modalità per pensare alle query. Alcune delle più importanti sono:
-
confrontare le dimensioni delle tabelle disponibili con il risultato desiderato per decidere quali aggregazioni eseguire.
-
Esaminare dove sono posizionate le informazioni di cui abbiamo bisogno. In una riga adiacente? In un gruppo? O in un intero dataset?
-
Interpretare le query con la corretta struttura logica. Per esempio, vedere le condizioni come vero o falso; vedere
<tabella1> JOIN <tabella2> ON ...
come una grande tabella.
Procedendo, per completare la tua formazione in SQL, probabilmente vale la pena dare uno sguardo alle funzioni finestra e alle più comuni espressioni di tabella. Puoi replicare il loro comportamento con le tecniche che hai imparato qui, tuttavia ti renderanno la vita decisamente più semplice e ti introdurranno ad un nuovo e prezioso paradigmo. Ho omesso questi concetti in quanto, quando ho scritto questo documento, SQLite non supportava le funzioni finestra e desiderato evitare la complessità di un nuovo database e un altro dialetto SQL.
Fino ad ora abbiamo imparato solo a consumare dati (eseguire query). C’è una intera altra branca di SQL per manipolare i dati: si occupa di azioni quali la creazione delle tabelle, l’inserimento o la cancellazione dei dati. Comprendere questi concetti può essere utile anche se non dovrai amministrare database in quanto ti aiutano a capire, fra le altre cose, perché le tabelle sono strutturate nel modo in cui lo sono.
Ancora più importante, hai ancora bisogno di molta pratica per essere efficace sui problemi del mondo reale. La prossima sezione ti fornirà alcuni esercizi ma la difficoltà aumenterà bruscamente. Potresti volere uscire nel mondo reale e mettere in pratica quanto abbiamo trattato finora e tornare quando sarai pronto.
Domande di sfida
Gli esercizi nei precedenti capitoli erano pernsati per ridurre la complessità così da creare un ambiente stimolante. Questo capitolo segna il confine con il selvaggio mondo dei problemi SQL. L’idea è quella della prova del fuoco: le domande sono ottimizzate per l’utilità piuttosto che per la facilità di apprendimento. Anche i programmatori SQL esperti potrebbero avere delle difficoltà. C’è molto valore in questa lotta.
Chiamata per i problemi
I buoni problemi creano o distruggono un tutorial. Se hai un'idea per un nuovo problema o una sezione, mi piacerebbe aiutarti a pubblicarla qui, dandoti tutto il merito. Mandami una email a zichongkao@gmail.com o invia una pull request. Ricorda che i buoni problemi non sono necessariamenti difficili—mostrano tecniche che hanno applicazioni ad ampio raggio.
Set di dati sulla cosponsorizzazione del Senato
Autore: Kao
In questa sezione, introduciamo un nuovo dataset dalla 114a sessione dle Congresso (2015-2016) refatta da James Fowler e altri. Ho rielaborato il dataset per permetterci di studiare le relazioni di cosponsorizzazione tra senatori.
Il senatore che presenta il disegno di legge si chiama lo “sponsor”. Altri senatori possono mostrare il loro sostegno cosponsorizzando il disegno di legge. I cosponsor al momento della proposta del disegno di legge sono chiamati “cosponsor originario” (fonte). Ciascuna riga della tabella riporta il disegno di legge, lo sponsor, un cosponsor originario e gli stati rappresentati dai senatori. Ricorda presente che possono esserci più cosponsor di una disegno di legge.