Il segreto per scrivere Query SQL
Il mondo dei database, oggi, è sempre più in continua espansione e il loro utilizzo è sempre più intensivo. Saper scrivere Query SQL è fondamentale per uno sviluppatore, ancor più, capirne la logica e il funzionamento.
In questa guida vedremo come scrivere Query SQL con Microsoft SQL Server e un linguaggio specifico, di SQL Server, chiamato T-SQL, che è l’acronimo di: “Transact SQL”.
Come SQL Server anche tutti gli altri sistemi di gestione di Database hanno un linguaggio di gestione autonomo che però può differire da sistema a sistema. Ad ogni modo, in questa guida ti spiegherò il metodo per scrivere query SQL.
Indice del Post...
1. Installare Microsoft SQL SERVER EXPRESS 2019
Come primo passo abbiamo bisogno di installare SQL Server Express 2019. SQL Server Express è, un tool della Microsoft, liberamente scaricabile e utilizzabile da chiunque. Questo software ha però qualche limite nella quantità di dati gestibili, che per quanto riguarda SQL SERVER, è più che sufficiente per sviluppare software gestionali gratis di piccole e medie dimensioni.
Tanto per la cronaca, SQL SERVER EXPRESS, è installabile non solo su sistemi operativi Windows ma, anche su distribuzioni Linux. A questo indirizzo è possibile effettuare il download, di SQL SERVER EXPRESS 2019, per sistemi operativi Windows.
Quindi clicca su “Download Now” e procedi con il download della versione di SQL Server Express 2019.
Terminata la fase di download del software non devi fare altro che procedere con l’installazione che, per quanto semplice, riguarda comunque l’installazione di un software di tipo server che può avvenire anche sul tuo PC personale dotato di sistema operativo Windows 8 o Windows 10. Ovvero computer desktop più moderni, non è necessario un server su cui installarlo.
A tal proposito, nel caso in cui trovassi in difficoltà, durante l’installazione, ti consiglio di seguire questo video tutorial per fugare ogni dubbio circa le impostazioni e le scelte da prendere durante la procedura.
Terminata l’installazione di SQL SERVER, riavvia come richiesto il computer e tutti i servizi necessari per la gestione di database relazionali sono attivi è pronti all’uso. Manca però ancora una console di comandi per SQL SERVER, cioè, quel software che ti permetterà di impartire comandi T-SQL ai database gestiti. Infatti, nel prossimo paragrafo vedremo come installare SQL SERVER Management Studio.
LEGGI ANCHE: Velocizzare Windows 10 con due comandi sconosciuti
2. Installare SQL SERVER Management Studio (SSMS)
Una volta terminata l’installazione di SQL SERVER EXPRESS 2019, devi installare necessariamente un altro software. Questo software è SQL SERVER Management Studio. Da qui in avanti faremo riferimento a questo tool con l’acronimo SSMS.
Quindi, clicca su questo link e successivamente sulla voce “Free Download for SQL Server Management Studio (SSMS) 18.10”. Attendi il completamento del download e procedi con l’installazione di SSMS.
Sia per SQL SERVER EXPRESS 2019 che per SSMS il download potrebbe richiedere anche diversi minuti, essendo applicativi molto corposi. In ogni caso la velocità di download dipenderà solo ed esclusivamente dalla velocità e dalla qualità della tua connessione ad internet.
Nel video tutorial che segue, puoi vedere passo-passo come installare SQL SERVER Management Studio e iniziare così a scrivere le tue prime Query SQL.
In realtà esistono anche altri tool per inviare comandi a database SQL SERVER, uno dei più accreditati, oltre a SSMS di casa Microsoft, è Toad For SQL SERVER. Questo applicativo, sviluppato dalla Quest, è un ottimo strumento molto utilizzato da sviluppatori di tutto il mondo per gestire non solo database SQL SERVER, ma anche MYSQL, ORACLE, e tanti altri ancora.
Terminata l’installazione di SSMS devi iniziare a creare i tuoi primi database, passo necessario per poter scrivere una Query SQL. Nel prossimo paragrafo vedremo come creare un database con SQL Server Management Studio (SSMS).
3. Crea Database su Microsoft SQL SERVER EXPRESS 2019
Per creare un nuovo database con SSMS è molto semplice, infatti, una volta avviato SSMS non devi fare altro che cliccare con il tasto destro del mouse sulla voce Databases e successivamente su New Database.
Ora, digita in corrispondenza del campo Database Name, il nome del database che desideri creare, a tale scopo ho scelto il nome prova. Adesso clicca sul pulsante OK e il tuo primo database è stato creato.
Una volta creato il database prova devi creare un altro oggetto SQL SERVER, parlo dell’oggetto tabella. Infatti, nel prossimo paragrafo vedremo come creare una tabella all’interno di un database su SQL Server.
4. Crea Tabella su Microsoft SQL SERVER EXPRESS 2019
Per creare una tabella con SSMS è molto semplice, infatti, una volta creato e individuata la voce relativa al database prova, non ti rimane che cliccare con il tasto destro del mouse sulla voce prova sotto Databases e successivamente su New Table.
L’operazione per quanto semplice non è ancora del tutto completa. Infatti, una tabella contiene una struttura, cioè, un insieme di campi o colonne necessarie per contenere i dati che di volta in volta popoleranno la tabella.
Per raggiungere lo scopo di questa guida, creeremo solo due tabelle, una sarà la tabella anagrafica e l’altra la chiameremo codici_fiscali. Quindi, la prima conterrà i campi id, cognome e nome,mentre la seconda conterrà i campi id e codice_fiscale. A questo punto però c’è una precisazione da fare, sicuramente avrai notato la presenza di un campo id.
Questo campo è obbligatorio, non per il nome che puoi assegnarlo di tua libera scelta, ma per le caratteristiche che ha e ogni tabella deve averne almeno uno. La caratteristica che contraddistingue il campo id è l’attivazione della proprietà identity,questa proprietà rende il campo id un campo ad auto-incremento, cioè, il contenuto di questo campo è gestito solo ed esclusivamente da SQL SERVER.
E quindi, ad ogni nuovo inserimento di records, il valore di questo campo viene incrementato automaticamente di una unità. Pertanto parliamo di un campo che conterrà solo ed esclusivamente numeri.
SQL SERVER ha bisogno di un campo di questo tipo per poter individuare univocamente un record tra i tanti contenuti nella tabella. Infatti, SQL SERVER, per poter aggiornare o eliminare un record sfrutta il contenuto del campo id per individuare il record da aggiornare con istruzioni T-SQL.
Adesso, procedi con la creazione della tabella anagrafica che avrà la struttura evidenziata in verde nella figura sottostante:
Ora clicca sull’icona raffigurante un floppy disk, salva e assegna il nome anagrafica alla tabella appena creata. Adesso, continua con la creazione della tabella codici_fiscali che avrà invece la struttura evidenziata in verde nella figura sottostante:
Anche in questo caso clicca sull’icona raffigurante un floppy disk, salva e assegna il nome codici_fiscali alla tabella appena creata. A proposito dimenticavo: “hai creato il campo id ad autoincremento? Spero di sì”.
5. Come popolare le tabelle con T-SQL
Abbiamo già parlato di T-SQL, ricordi? È il linguaggio utilizzato per scrivere Query SQL in SQL SERVER. Beh, ora inizieremo a prendere confidenza con qualche comando SQL, quindi, iniziamo con il popolare le due tabelle create con dati utili per la creazione di query.
Pertanto, clicca sul pulsante New Query e digita le istruzioni riportate in figura, successivamente premi il pulsante Execute.
Le nostre due tabelle sono state popolate con dati di fantasia al solo scopo di poter scrivere Query SQL e ritornare i result set previsti. Ora però, verifichiamo il contenuto delle due tabelle digitando la nostra prima Query SQL. Quindi, clicca sul pulsante New Query e digita la seguente istruzione SQL:
SELECT * FROM Anagrafica
Adesso clicca sul pulsante Execute. Noterai che nella finestra sottostante a quella contenente l’istruzione SELECT sono stati elencati tutti i records della tabella anagrafica e inseriti precedentemente con le istruzioni INSERT.
Ora, puoi provare a controllare il contenuto della tabella codici_fiscali digitando l’istruzione SELECT * FROM codici_fiscali ripetendo le stesse operazioni eseguite precedentemente per la tabella anagrafica.
6. Come scrivere query SQL
Molti programmatori meno esperti, utilizzano i wizard di MS Access per produrre delle query da dare in pasto a SQL SERVER. Purtroppo, la natura dichiarativa di SQL SERVER è completamente differente da quella offerta da MS Access. Quindi, è del tutto sbagliato copiare e incollare query da MS Access a SQL SERVER o altri DBRMS. Mi dispiace, ma non hai scampo, le query, con SQL SERVER, le devi scrivere tu di sana pianta.
Quindi, non perdiamo tempo e cerchiamo di focalizzare il discorso su come cicla sui dati il motore di database di SQL SERVER. Può sembrarti strano ma il punto è tutto qua. Quando, abbiamo digitato il comando SELECT abbiamo dato ordine a SQL SERVER di scorrere ciclicamente tutti i records di una tabella. Tieni in considerazione che un’istruzione SELECT può operare anche su più tabelle contemporaneamente, ma c’è sempre una tabella che è quella principale, cioè, quella su cui opera il ciclo principale sui dati.
6.1 Gli alias
Per fortuna l’istruzione SELECT non è un’istruzione blindata, anzi, SELECT ti permette di personalizzare il result set ritornato lavorando molto con gli alias. Cioè, ogni volta che inserisci il nome di una tabella, in una query, è sempre conveniente associare un alias al nome della tabella, in questa forma:
SELECT A.* FROM anagrafica AS A
Ma qual è l’importanza dell’alias “A”? L’alias ci permette di far riferimento, durante la scansione dei record da parte di SQL SERVER, ai campi della tabella anagrafica e processarne il contenuto record dopo record.
Ad esempio, volendo recuperare il codice fiscale di ogni nominativo l’istruzione precedente potrebbe diventare:
SELECT A.Cognome, A.Nome, (
SELECT TOP 1 C.codice_fiscale
FROM codici_fiscali AS C
WHERE C.id = A.id
)
FROM anagrafica AS A
Dando un’occhiata all’istruzione SELECT precedente, possiamo notare che è possibile, adesso, elaborare il contenuto di ogni singolo record di anagrafica facendo seguire una specie di blocco di codice, formato dalle due parentesi tonde, entro cui è possibile recuperare, grazie agli alias, campi o contenuti anche di altre tabelle. Cioè, interporre una Query SQL, anche molto complessa, tra l’elenco dei campi nella clausola SELECT.
Quindi, grazie agli alias adesso, al posto di un nome di campo della tabella principale, deputata alla scansione, è possibile inserire del codice per recuperare contenuti, eseguire delle function, oppure, eseguire dei calcoli.
Questa tecnica è quella che ti permetterà di capire come interagire, durante la scansione di una tabella, con i dati recuperati da altre tabelle di volta in volta.
LEGGI ANCHE: Come creare un software gestionale gratis con SQL Server e NodeJS
6.2 Elaborazione su condizione; il comando CASE
Altro aspetto da non trascurare durante l’elaborazione di una Query SQL è la possibilità di sottoporre a espressioni condizionali i valori recuperati durante la scansione.
Ad esempio:
SELECT A.Cognome, A.Nome,
(
CASE
WHEN (
SELECT TOP 1 SUBSTRING(C.Codice_fiscale, 7, 2)
FROM Codici_fiscali AS C
WHERE C.id = A.id
) = '87' THEN '>= 34 anni'
ELSE 'Sotto i 34 anni'
END
) AS 'età'
FROM Anagrafica AS A;
La nostra Query SQL di esempio, ora, è stata modificata interponendo istruzioni condizionali al recupero di dati da altre tabelle. Da qui si evince come sia possibile ciclare contemporaneamente sui dati della tabella principale e nello stesso tempo valutare espressioni condizionali.
In questo caso WHEN valuta l’anno contenuto nel campo codice_fiscale, recuperato con una SELECT nella tabella codici_fiscali, e se uguale a 87 ritorna la stringa ‘>= 34 anni’ come contenuto del campo calcolato ‘età’, altrimenti ritorna la stringa ‘Sotto i 34 anni’.
Insomma, combinando opportunamente Alias ed espressioni condizionali è possibile ottenere result set complessi a fronte di codice, anche, molto compatto.
7. W3Schools.com il portale online interattivo per gli sviluppatori
Da anni ormai è presente in rete un portale interattivo su cui è possibile provare script in qualsiasi linguaggio. T-SQL non fa eccezione, infatti, a questo indirizzo puoi esercitarti con tutti i comandi SQL SERVER in un ambiente studiato appositamente per garantirti un apprendimento più facile ed immediato.
In W3Schools.com troverai migliaia di esempi di codice da provare all’istante utilizzando un editor online, avrai la possibilità di modificare gli esempi ed eseguire il codice sul tuo computer all’interno della finestra del browser, per vedere come funziona il tuo script, prima di implementarlo.
L’argomento trattato in questa guida è veramente molto ampio e il metodo suggerito per scrivere Query SQL è da considerare come punto di partenza per entrare nel fantastico mondo della programmazione di database remoti.
Ad ogni modo, ti suggerisco di seguire questo video tutorial dove avrai modo di carpire ulteriori suggerimenti, in tale ambito, e altri comandi utili per ottimizzare la stesura di Query SQL.