corso sql a torino

Corso SQL e Database relazionali

L’SQL è una competenza chiave in praticamente tutti i settori dell’informatica: da figure specifiche come il database developer, a quelle strettamente legate al mondo dei dati (data engineer, data scientist, ecc…) ad altre legate alla programmazione web o alla gestione di applicativi finanziari e gestionali. La domanda “sai scrivere una query?” è ormai un must-have nella maggior parte dei colloqui tecnici di lavoro. Dopo il corso potrai rispondere con un sì convinto, imparando a programmare in SQL e a scrivere query in modo corretto e fluente.

Il mio obiettivo sarà quello di insegnarti a interrogare, aggiornare e gestire correttamente e con dimestichezza un database relazionale. Partiremo dalle basi, spiegando che cos’è un database relazionale, cosa lo caratterizza e perché è diverso da altri strumenti di analisi dei dati come Microsoft Excel. Le spiegazioni teoriche termineranno dopo circa venti minuti della prima lezione. Da quel momento in poi inizieremo insieme a programmare, sperimentare, fare esercitazioni “real world” su problematiche all’ordine del giorno per ogni professionista che si interfaccia con i database, partendo dalle query più semplici fino ad arrivare a situazioni complesse. Simuleremo di ricevere mail urgenti dal capo (non sempre chiarissime) che ci permetteranno di mettere in pratica quanto imparato. Vi racconterò tutti gli errori che ho fatto durante i miei primi anni di sviluppatore SQL, in modo da mettervi in guardia sui tranelli in cui è facile cadere quando si ha poca esperienza.

Durante il corso potremmo utilizzare i principali RDBMS (Relational Database Management System) tra cui Oracle, Sql Server, MySql e Access evidenziando sia le strutture e i paradigmi standard nell’utilizzo dell’SQL e sia le particolarità di ogni specifico prodotto. Evidenzieremo la natura english-like e dichiarativa del linguaggio e impareremo a scrivere query performanti ed efficienti.

 

Il programma del corso Sql: cosa impareremo

Come vi dicevo ci serviranno venti minuti circa di teoria, per rispondere sostanzialmente a queste domande:

  • cos’è un database;
  • cos’è un database relazionale;
  • cos’è un database non relazionale;
  • cos’è una tabella;
  • con quale linguaggio di programmazione creo, aggiorno e interrogo le tabelle.

A questo punto inizieremo a scrivere le prime query utilizzando le tre parole chiavi principali dell’SQL:

  • la SELECT per specificare le colonne che vogliamo visualizzare
  • la FROM per indicare la tabella contenente le informazioni
  • la WHERE per visualizzare solo la porzione di dati che ci interessa

Per quanto all’apparenza sembrerà tutto facile, vi spiegherò come anche in questi casi è possibile combinare dei pasticci se non si è opportunamente formati: impareremo a gestire correttamente le date e gli intervalli di date, i valori null, a prendere coscienza di quanto è importante per lo sviluppatore SQL conoscere la struttura del database che sta interrogando per non incorrere in gravi errori. Il tutto con esempi pratici, raccolti dalla mia esperienza sul campo e dagli errori emersi nei numerosi corsi che ho tenuto.

join tra tabelle

Appena avremo consolidato questa parte, inizieremo a rispondere a domande più complesse in cui le informazioni sono dislocate in più di una tabella. Per far questo dovremo imparare a scrivere le JOIN (se vuoi studiarle da solo a questo link trovi un mio articolo a riguardo). Anche questa attività, per quanto all’inizio sembrerà semplice (per gli amanti di Excel vi ricorderà la funzione cerca.verticale), nasconde molte insidie perché, se non porremo le dovute attenzione, ci troveremo involontariamente a restituire informazioni parziali oppure, ancor peggio, duplicate.

Continuando il paragone con Excel, superato l’ostacolo delle join, dobbiamo imparare come replicare in modo semplice e veloce con l’SQL quelle che sono le tabelle pivot di Excel. Sarà dunque giunto il momento di introdurre la parola chiave GROUP BY e le principali funzioni di aggregazione come SUM, AVG e COUNT. Dopo aver imparato la regola d’ora “copio e incollo nella select ciò che ho scritto nella group by e aggiungo soltanto funzioni di aggregazione“, integreremo la GROUP BY con l’istruzione HAVING e impareremo a rispondere con disinvoltura a domande del tipo:

  • estrai il numero di clienti per ogni regione;
  • calcola il fatturato diviso per anno e mese;
  • riporta le regioni in cui abbiamo fatturato più di 10000 euro nel primo trimestre del 2021, considerando soltanto i prodotti di Tipologia A.

A questo punto padroneggeremo tutta la sintassi di base per interrogare le tabelle di un database relazionale: Select, From, Join, Where, Group by ed Having. Impareremo a non fare l’errore dei principianti di “voler fare tutto in un’unica complicatissima query”. Capiremo che per rispondere a domande complesse non serve scrivere query complesse, ma suddividere la domanda in tanti step più semplici, implementarli singolarmente con la sintassi di base dell’SQL e “unire i pezzi” tramite l’utizzo di CTE, subquery o tabelle temporanee.

A questo punto avremo i mezzi e la consapevolezza necessaria per affrontare con disinvoltura nuovi argomenti:

  • le clausole TOP e ORDER BY;
  • le funzioni principali e il CASE WHEN;
  • come passare dall’interrogazione all’aggiornamento di un database (ne ho parlato qui).

 

Imparare a progettare un database

Nella prima metà del corso lavoreremo su dei database creati ad hoc da me, per riprodurre tutte le casistiche e le problematiche di un vero ambiente di lavoro (trovi il codice per crearli sul mio repository di Github). Una volta padroneggiate le tecniche per interrogare un database preesistente, sarà arrivato il momento di imparare a progettarne uno autonomamente. Vedremo quanto sia cruciale la parte di progettazione di un database, scegliere correttamente i tipi delle colonne, creare i vincoli di chiave primaria, chiave esterna e check. Impareremo i principi della normalizzazione (qui trovi un mio articolo su come normalizzare un database) e della progettazione fisica, analizzando gli impatti della creazione degli indici sulle performance di una query,

 

Informazioni generali sul corso

Per corsi in modalità one-to-one, dove saremo presenti soltanto io e te, la durata necessaria per trattare adeguatamente tutti gli argomenti descritti in questa pagina è di 16 ore, meglio se suddivisi in sessioni di due ore ciascuna. In questo caso il costo è di 560€, pari a 35€ orari.

Spesso mi viene chiesto di erogare il corso contemporaneamente a più colleghi della stessa azienda. In questo caso il costo è di 50€ orari. Ovviamente l’aggiunta di partecipanti rende le lezioni meno personalizzabili e cucibili sulle singole esigenze, anche se restano assolutamente proficue e beneficiano inoltre dell’interazione e della condivisione di più persone. Da quella che è la mia esperienza, l’aggiunta di ogni partecipanti pesa per circa 3-4 ore in più necessarie per svolgere il programma con la stessa efficacia.

Le lezioni si tengono in diretta on line, solitamente con il software di videochiamata Zoom. Gli studenti hanno la possibilità di registrare sul proprio pc le lezioni, in modo da poter accedere a vita ai contenuti.

La docenza del corso è tenuta da me, Nicola Iantomasi, qui trovi la pagina del sito con la mia biografia.

 

Materiale didattico

Il database d’esempio, gli script, gli esercizi con le soluzioni e tutto il materiale didattico saranno consegnati puntualmente alla fine di ogni lezione. Al termine del corso verrà rilasciato un certificato di frequenza con profitto.

 

Un esempio di cosa imperarei nel corso sql: utilizzare correttamente left join, not exists e not in

 

Corsi correlati

Se conosci già bene queste tematiche, guarda la scheda del corso su sviluppo e programmazione sul Database Sql Server.

 

Alcune recensioni dei miei studenti

Nicola è un consulente IT eccezionale! Nicola è stato per me una guida eccezionale. Fin da subito è riuscito a spiegarmi concetti e ad introdurmi nozioni di basi di dati in modo fluido, chiaro, lineare e diretto. Sono contenta di essermi rivolta ad un professionista come Nicola che, non solo è oltremodo preparato nelle materie che insegna, ma che soprattutto mette passione e trasporto nel suo lavoro. Tutto ciò è risultato molto positivo, perchè grazie a lui ho acquisito in pochissimo tempo la capacità per poter proseguire nelle mie pratiche autonomamente e con successo. Ho avuto piena fiducia in Nicola fin dal primo minuto, e questo per me è rassicurante perchè, ogni qualvolta avrò la necessità di ricevere consulenze informatiche, so che posso contare su Nicola. Lo raccomando pienamente al 100%! Non esitate a contattarlo!!

Roberta Diamanti
17/01/21

Nicola è stato un professore molto competente nel capire quelli che erano i miei bisogni e nel colmare in poco tempo le mie lacune. Assolutamente consigliato!

Martina Bonfiglio
01/06/20
Torna su