Corso SQL Server: sviluppo e programmazione con T-SQL

corso t-sql su Sql Server

Il corso “SQL Server: sviluppo e programmazione con T-SQL”  è rivolto a persone che posseggono già delle competenze sul linguaggio SQL o sul Database SQL Server e che vogliono incrementare notevolmente le proprie conoscenze nella scrittura di query efficienti, nell’interrogazione, nella progettazione e nella programmazione di un database tramite il linguaggio Transact-SQL.

Imparerai a programmare con tutti i costrutti avanzati di T-SQL come le Windows function, la Cross apply e le viste parametriche. Ti insegnerò ad espandere le potenzialità delle operazioni DML tramite la clausola Output e le Temporal Table, o ad effettuare performanti raggruppamenti multi-livello con i costrutti Cube, Grouping sets e Rollup della Group by. Renderemo insieme il tuo modo di scrivere le query più breve, veloce, chiaro e performante.

Dedicheremo molta attenzione a come raggruppare il codice in stored procedure efficienti che includano parametri di input e di output, gestione degli errori, delle transazioni e dei diritti di esecuzione, pronte per essere eseguite in automatico tutti i giorni. Con questa nuova ottica ti occuperai di “programmazione di un database” e non più della singola scrittura di query isolate.

Sempre più spesso dovrai interfacciarti con dati in formato Json e per questo è fondamentale che tu sappia integrarli, interrogarli ed esporli anche all’interno di un database relazionale come Sql Server. Le Temporal table sono state un’innovazione troppo importante e performante per non usarle attivamente per risolvere tutti gli annosi problemi riguardanti il log delle tabelle e la gestione delle modifiche a dati di anagrafica. Vedremo come misurare concretamente le performance delle tue nuove query, imparando a leggere i piani di esecuzioni e comprendendo i principi con cui il motore interno del database esegue le query.

 

Il programma del corso “SQL Server: sviluppo e programmazione con T-SQL”

Ho diviso il programma in tre sottosezioni.

Riepilogo delle strutture di base dell’SQL e introduzione ai piani di esecuzione

Inizieremo con un riepilogo veloce delle strutture di base dell’SQL per assicurarci che tutti gli argomenti propedeutici a quelli avanzati siano chiari. Coglieremo l’occasione per ripassare gli operatori insiemistici Union, Union All, Intersect ed Except prestando attenzione alle relative performance e al modo di gestire i valori nulli e duplicati. Analizzeremo dal punto di vista delle performance i vari algoritmi per confrontare i dati tra più tabelle comparando ad esempio i costrutti Left Join, Not Exists, Not In ed Except. Per far questo valuteremo i piani di esecuzioni delle query comprendendo le cause alla base delle differenze di performance tra due query simili.

Continueremo questa parte introduttiva ricordando le funzioni T-SQL più utili per manipolare stringhe e date. Vedremo ad esempio come la funzione Try_convert può risolvere in molti casi gli annosi problemi di conversione e superare l’utilizzo non sempre chiarissimo di IsNumeric. Dai un’occhiata a questa foto o leggi l’articolo a riguardo di Brent Ozar https://www.brentozar.com/archive/2018/02/fifteen-things-hate-isnumeric/.

esempio di utilizzo su Sql Server della funzione isnumeric

 

Istruzioni avanzate di Transact-SQL

A questo punto possiamo entrare nel vivo e presentare nuovi costrutti utilissimi per scrivere query più efficienti e compatte. Partiremo dalle Window Functions, uno strumento importantissimo per migliorare il nostro SQL soprattutto per tematiche legate alla data analysis e al reporting.

“Estrarre per ogni cliente la sua fattura più recente”

Se stai pensando di risolvere l’esercizio in questo modo

SELECT F.*
FROM Fatture as F
INNER JOIN (SELECT IdCliente, Max(DataFattura) As DataUltimaFattura
                           FROM Fatture
                           GROUP BY IdCliente) AS U
         ON F.IdCliente = U.IdCliente
         AND F.DataFattura = u.DataUltimaFattura

con una sottoquery che esegui una group by più una join, vuol dire sicuramente che hai una buona conoscenza dell’SQL, ma ignori purtroppo l’esistenza delle window function, che ti permetterebbero di scrivere un codice ad hoc più leggero e performante, oltre a gestire con totale libertà il caso in cui ad un cliente siano state registrate due fatture nello stesso giorno.

Dedicheremo una buona porzione di tempo alle window function con il T-SQL perché gli ambiti di utilizzo sono davvero tanti. Ma ci saranno anche tanti, nuovi e utili costrutti da studiare:

  • le clausole di Output che permettono di gestire facilmente attività di log successive ad operazioni di aggiornamento delle tabelle; 
  • come e quando utilizzare subquery, Cte (anche ricorsive), tabelle temporanee, variabili-tabella e viste per rispondere a domande complesse non con query complesse e incomprensibili, ma concatenando tante piccole e performanti query più semplici;
  • i costrutti Grouping Sets, Rollup e Cube per potenziare le operazioni di aggregazione dei dati;
  • effettuare Pivot e Unpivot dei dati;
  • manipolare dati in formato JSON tramite la sintassi SQL;
  • creare e interrogare Temporal Table.

 

Creare e gestire Store Procedure con T-SQL, gestione degli errori e delle transazioni

Mancheranno a questo punto gli ultimi tasselli per imparare a scrivere il miglior codice SQL possibile. Dobbiamo studiare come:

  • parametrizzare il nostro codice utilizzando delle variabili;
  • gestire gli errori tramite i blocchi Try/Catch;
  • gestire le transazioni con le istruzioni Begin Tran, Commit e Rollback;
  • combinare i tre punti precedenti per incapsulare il nostro codice in Stored Procedure efficienti e automatizzate.

Vedremo infine come creare viste parametriche (note tecnicamente come Inline Table-Valued Function). Anche se in generale non hanno la stessa flessibilità delle stored procedure in quanto non permettono operazioni DML, le viste parametriche possono risultare estremamente utili se utilizzate in sinergia con i costrutti OUTER e CROSS APPLY per interrogare i dati all’interno del database.

 

Un esempio di cosa imparerai: le transazioni

 

Informazioni generali e corsi correlati

Modalità di erogazione: in diretta streaming con software di videoconferenza

Durata edizione one-to-one (lezioni ristrette ad un solo partecipante): 16 ore

Costo edizione one-to-one (lezioni ristrette ad un solo partecipante): 800€

Durata edizione aziendale (lezioni per partecipanti della stessa azienda): da definire in una call

Costo edizione aziendale (lezioni per partecipanti della stessa azienda): 60€/h

Data di partenza del corso: entro un mese circa dalla richiesta

Calendario: concordato con lo studente o l’azienda

Possibilità di registrare le lezioni per uso didattico:

Prerequisiti: è necessaria una buona conoscenza delle basi del linguaggio SQL. Se non hai esperienza sulla materia guarda la scheda del corso introduttivo all’sql e ai database relazionali. Se invece sei già esperto su questi argomenti e ti interessa un corso concentrato sulle performance e tematiche avanzate di SQL Server, guarda il programma del corso avanzato su Sql Server.

Tutti i prezzi di questa pagina sono esenti iva (iva allo 0%) in quanto erogati nell’ambito del regime fiscale forfettario.

 

Contattami

CAPTCHA immagine

Questo ci aiuta a prevenire lo spam, grazie.

Torna su