Guida SQL in italiano
Una guida SQL per principianti, completa e dettagliata, in italiano, che ti permetterà di avviare il tuo viaggio nel mondo dei database, di scoprire il linguaggio sql cos'è, padroneggiare le query SQL e migliorare le tue competenze informatiche!
SQL, acronimo di Structured Query Language, è un linguaggio di programmazione utilizzato per gestire e manipolare i database. SQL è un linguaggio molto potente e, a causa della sua importanza nella gestione dei dati, è una competenza fondamentale per molti ruoli nel campo dell'informatica. Pronto ad imparare?


Cosa imparerai
Imparerai la differenza tra database relazionali e non relazionali, la sintassi sql per eseguire query SQL complesse per estrarre informazioni preziose: istruzioni e clausule del linguaggio SQL non saranno più un mistero! Scoprirai SQL, NoSQL, mysql cos è, funzioni e operatori di SQL per filtrare e manipolare i dati nel tuo database. Preparati a dominare il mondo dei database con SQL!
1
I database
-cover-thumb.jpg)
1Cos'è un database
Si sentono sempre di più termini quali big data, data lake, IoT, machine learning. La conoscenza delle competenze relative sarà il motore della gran parte dei lavori dei prossimi decenni. Alla base di tutto c’è il concetto di archivio, o base di dati, all’inglese database; ma che cos è un database? Cos'è un database Un database &egra...
Continua a leggere
2Tipi di database
Prima di addentrarsi nel linguaggio SQL, è importante conoscere i vari tipi di database esistenti, poiché rappresentano la base sulla quale si costruiscono e gestiscono le applicazioni e i sistemi di dati. I database possono essere classificati in diverse categorie, tra cui: Database relazionali: sono il tipo più comune di database e organizzano i dati in tabel...
Continua a leggere-cover-cover-(1)-thumb.jpg)
3Linguaggio SQL: i database relazionali
Uno dei sistemi per organizzare i database è lo Structured Query Language, in breve in linguaggio SQL: come dice il nome (query vuol dire “interrogazione”) si tratta di un sistema per interrogare i database che, di fatto, definisce il database stesso. Oggi, SQL è il linguaggio di database più usato al mondo. Storicamente, i database hanno una vita molto lunga ch...
Continua a leggere
4NoSQL: i database non relazionali
Quello relazionale non è l’unico elemento. I dati all'interno di un database possono essere strutturati in tre modi fondamentali: relazionale, gerarchico o ad albero. Un termine contenitore per molti di questi approcci alla memorizzazione di dati è il NoSQL che -a seconda dei fornitori- può indicare sia la negazione diretta del relazionale, sia la più ampia ac...
Continua a leggere
5L’avvento della blockchain
Un altro tipo di sistema di memorizzazione dati in grande sviluppo è quello dei registri aperti o ledger. Si differenziano dai database per un accesso più semplice ed aperto ai dati da parte di singoli o organizzazioni che vogliano elaborarli. La famiglia al momento di maggior successo è quella delle blockchain, resa famosa dalle criptovalute come Bitcoin o Ethereum. Non bi...
Continua a leggere
2
Introduzione al linguaggio SQL

6Linguaggio SQL cos'è
Come hai già letto, SQL è un linguaggio di programmazione utile per manipolare i dati all'interno di un database. Il database è organizzato sotto forma di numerose tabelle. Queste tabelle vengono collocate su un server al quale si accede da remoto. In questa guida faremo esempi le cui tabelle e il relativo codice di interrogazione vengono temporaneamente os...
Continua a leggere
7Linguaggio SQL: istruzioni
Ecco alcuni esempi di istruzioni (o comandi) in SQL. Per le tabelle si usano tre istruzioni fondamentali: CREATE: crea una nuova tabella, un nuovo database o altri oggetti del database; ALTER: modifica la struttura di una tabella o di altri oggetti del database; DROP: elimina una tabella, un database o altri oggetti del database. Per operare sui dati si parte da...
Continua a leggere
8Sintassi di base di SQL: creare, modificare e eliminare tabelle
Una lista di istruzioni e clausole non basta a facilitare l’apprendimento. Inizia a mettere davvero le mani in pasta nella programmazione in SQL, usando solo le istruzioni necessarie. Tra poche righe potrai iniziare a scrivere i tuoi primi programmi SQL! Emozionato, eh? Prima, però, è opportuno fare un minimo di teoria… porta pazienza, dura poco! ...
Continua a leggere
9Linguaggio SQL: esempi di istruzioni con clausole
Adesso sai cosa sono le istruzioni (o comandi) in SQL, e sai anche cosa sono le clausole. Ecco, ora, alcuni esempi concreti di istruzioni SQL con relative clausole, così da farti toccare con mano i meccanismi di SQL, per comprenderli al meglio. SELECT * FROM prodotti WHERE prezzo > 50; In questo esempio, l'istruzione SQL SELECT sceglie e stampa a schermo ...
Continua a leggere
10Linguaggio SQL: database e operazioni comuni sui dati
Quelli precedenti sono esempi validi, ma singoli, di istruzioni SQL che permettano di generare, compilare e gestire una tabella SQL. Avviciniamoci, ora, ad un esempio completo. Prova a pensare ad una tabella SQL con i seguenti oggetti: drone, visore 3D, AR glasses, 3D printer, 3D scanner, laser cutter, smartwatch, e-bike. Queste saranno le righe dalla tabella: Drone Visore 3D ...
Continua a leggere
3
Tool di SQL editing

11MySQL cos è
Quando si parla di database in genere si fa riferimento ai diversi ambienti SQL a pagamento disponibili sul mercato. Certamente il più noto è Oracle, anche al grande pubblico, viste le molte sponsorizzazioni di eventi anche sportivi, come l’America’s Cup di vela, che ha anche vinto con un proprio equipaggio. Nel mondo del Web, invece, grande fama ha MySQL, anche per l&...
Continua a leggere-cover-thumb.jpg)
12Cinque prodotti commerciali per interagire con SQL
Esistono molti tool software per interagire con il linguaggio SQL. Guardiamo insieme cinque prodotti commerciali per poterlo fare. 5 prodotti commerciali per interagire col linguaggio SQL Tra i più noti, partendo da Oracle, troviamo: Oracle SQL Developer: questo ambiente SQL è sviluppato da Oracle ed è specifico per l'utilizzo con il database Oracle. Offre ...
Continua a leggere
13Cinque tool online gratuiti per interagire con SQL
L’uso di tool online, con i loro pregi e difetti, è spesso preferibile. Per quanto riguarda il linguaggio SQL, ne esistono svariati di tipo gratuito. Eccone alcuni. SQL Fiddle crea, testa e condivide codice SQL per diversi database, come MySQL, PostgreSQL, Oracle e SQLite. DB Fiddle è simile a SQL Fiddle, ma supporta solo PostgreSQL, MySQL e SQLite. SQLite Onl...
Continua a leggere
14Cinque tool SQL desktop gratuiti per Windows e MacOS
Anche per il desktop esistono numerosi software gratuiti. Non esiste un tool migliore in assoluto, ma bisogna vedere le singole necessità. In genere, tutti funzionano per i principali sistemi operativi (Windows, MacOS e Linux). Sequel è solo per MacOS, mentre TablePlus supporta anche iOS. Per Linux bisogna sempre vedere di quale distribuzione si parla. Ecco alcuni suggerim...
Continua a leggere-thumb.jpg)
14MySQL online
La nostra scelta è ricaduta su un tool chiamato MySQL online. Negli esempi che seguono abbiamo usato, infatti, proprio questo tool. Si tratta di uno degli infiniti strumenti per la programmazione disponibili sul sito di Extend Class. Al momento in cui scriviamo, è operativa la versione 8.0 di MySQL. Per scrivere e verificare il codice non è necessario neanche isc...
Continua a leggere-thumb.jpg)
15Il primo esempio
Ti avevamo promesso mani in pasta, ed eccoci qui: diamo un po' di concretezza a quanto detto! Con MySQL Online, l’esempio teorico visto nei capitoli precedenti appare scritto così: CREATE TABLE oggetti (id integer PRIMARY KEY AUTO_INCREMENT, oggetto varchar(50), marca varchar(50), modello varchar(50), descr varchar(10), collocazione VARCHAR(8), quantita integer, pr...
Continua a leggere
4
Filtrare e ordinare i dati in SQL

16SELECT SQL
La prima modalità di filtro è l’uso di SELECT per il suo vero utilizzo: scegliere alcune colonne e non altre. Finora l’hai visto con l’asterisco, che indica tutte le colonne e, quindi, non fa alcuna scelta. Se dall’esempio corrente usi una SELECT diversa puoi nascondere le colonne che vuoi. SELECT marca, modello, prezzo FROM oggetti; ...
Continua a leggere
17WHERE SQL
WHERE e HAVING sono due clausole dell’istruzione SELECT. Vediamo come funzionano. Supponi di voler selezionare solo gli oggetti con marca 'Trotec'. SELECT * FROM oggetti WHERE marca='Trotec'; Questo restituirebbe solo le righe della tabella 'oggetti' in cui la marca è 'Trotec', nel nostro esempio, il laser cutter. &...
Continua a leggere
18GROUP SQL
Un’altra clausola molto usata con SELECT è GROUP. Supponi di voler conoscere il numero totale di oggetti presenti per collocazione. Puoi usare la clausola GROUP BY. Per fare le cose un po’ più interessanti, nell’esempio che segue trovi alcune variazioni sul tema, con le clausole COUNT, AS e SUM: capisci a che servono? SELECT collocazione, C...
Continua a leggere-cover-thumb.jpg)
19ORDER SQL
Un tipo di filtro molto interessante è l’ordinamento dei dati. Vari tipi di ordinamento sono fondamentali per un uso efficace dei database. Sempre partendo dall’istruzione SELECT, le clausole usate sono ORDER e GROUP. Per ordinare gli oggetti in base al prezzo, dal più basso al più alto, puoi usare ORDER BY: SELECT * FROM oggetti ORDER BY ...
Continua a leggere-thumb.jpg)
20HAVING SQL
Supponi, ora, di voler conoscere il numero totale di oggetti presenti solo per le marche con almeno un oggetto con prezzo uguale a 1000. La clausola HAVING filtra i dati raggruppati: SELECT marca, SUM(quantita) as totale_oggetti FROM oggetti WHERE prezzo = 1000 GROUP BY marca HAVING totale_oggetti > 0; Questa query restituisce una tabella con le marche e il n...
Continua a leggere
5
Unire più tabelle in SQL
-cover-thumb.jpg)
21UNION SQL
L'operatore UNION unisce il risultato di due o più SELECT in un unico risultato. Il risultato dell'UNION contiene tutte le righe restituite dalle query coinvolte nell'operazione senza duplicati. Ad esempio, potremmo unire le righe della tabella "oggetti" dove il prezzo è uguale a 1000 con quelle dove la collocazione è "OGG.002". Ecco un esemp...
Continua a leggere
22JOIN SQL
Per unire più tabelle, dato che ne abbiamo solo ‘oggetti’, ne serve una seconda. Eccola: la chiameremo ‘fornitori’. CREATE TABLE fornitori (id integer PRIMARY KEY AUTO_INCREMENT, marca varchar(50), distributore varchar(2), provenienza varchar(50), percentuale DECIMAL(5,2)); INSERT INTO fornitori (marca, distributore, provenienza, percentuale) VA...
Continua a leggere
6
Linguaggio SQL: come aggiungere e modificare campi

23Aggiungere e modificare campi in SQL
Per aggiungere, cancellare o modificare i campi si usano le istruzioni ALTER. Per fare degli esempi senza creare confusione su MySQL online useremo una tabella a parte, un calendario di appuntamenti. Supponiamo di avere i seguenti appuntamenti: Lunedì 25/04 ore 16 visita da Gregory House al Plainsboro Teaching Hospital di Princeton, NJ (New Jersey); Martedì...
Continua a leggere
24ALTER TABLE / ADD / UPDATE SQL
Se hai fatto attenzione, hai notato anche che rispetto alla lista discorsiva alla tabella manca una informazione: l’orario. I tre appuntamenti sono infatti rispettivamente alle 16, 18 ed 11 in orario locale. Per completare la tabella bisogna quindi aggiungere un campo. A questo serve l'istruzione ALTER TABLE, ovvero modifica la tabella. Per aggiungere alla tabella agenda il campo per ...
Continua a leggere-cover-thumb.jpg)
25ALTER TABLE / DROP SQL
Per cancellare un campo da una tabella serve l'istruzione ALTER TABLE. Ad esempio, per cancellare il campo "giorno" dalla tabella "agenda", puoi usare il seguente comando: ALTER TABLE agenda DROP COLUMN giorno; Una volta eseguita, questa istruzione riduce la tabella. Chiedendo al sistema di mostrare il risultato con la solita SELECT, otterrai que...
Continua a leggere
7
Funzioni e operatori del linguaggio SQL

26COUNT, SUM; AND, OR, NOT SQL
Passeremo velocemente su questa parte, poiché davvero semplice. Avrai comunque modo di eseguire alcune operazioni che ti mostrino in pratica le possibilità di base e ti consentano, se avrai voglia, di fare autonomamente sperimentazioni più ampie con le clausole che vedrai. Inoltre, avrai le basi per cercare autonomamente le altre clausole ed istruzioni offerte dal linguaggio S...
Continua a leggere-thumb.jpg)
27AVG, MIN e MAX SQL
Funzioni di aggregazione come AVG, MIN e MAX per calcolo statistiche sui dati. Vediamo come fare una media e trovare massimo e minimo dei tre numeri nella colonna da_1_genn. SELECT AVG(da_1_genn) AS media, MIN(da_1_genn) AS minimo, MAX(da_1_genn) AS massimo FROM agenda; Essendo una SELECT, non modifica la tabella ‘agenda’ ma presenta direttamente i r...
Continua a leggere-cover-thumb.jpg)
28Commenti in SQL
Se hai prestato attenzione nella pagina precedente, avrai certamente notato che nel codice abbiamo inserito nuovi caratteri, composti dal doppio trattino -- o da una combinazione di slash ed asterisco (/*, */). Tutti i linguaggi di programmazione permettono di inserire dei commenti utili per modificare il codice, ma che non vengono eseguiti. In genere nelle varie versioni di SQL vengono accetta...
Continua a leggere
9
Codice SQL dei precedenti capitoli
-cover-(1)-thumb.jpg)
30Codice SQL per i capitoli 3 e 4
Questa è la tabella ‘oggetti’ CREATE TABLE oggetti (id integer PRIMARY KEY AUTO_INCREMENT, oggetto varchar(50), marca varchar(50), modello varchar(50), descr varchar(10), collocazione VARCHAR(8), quantita integer, prezzo decimal); INSERT INTO oggetti (oggetto, marca, modello, descr, collocazione, quantita, prezzo) VALUES ('Drone', 'DJI', 'Mavic Air 2', 'descr', 'OGG....
Continua a leggere-cover-(1)-thumb.jpg)
31Codice SQL per il capitolo 5
In questo capitolo si usano gli esempi dei due precedenti, collegati alla tabella ‘oggetti’, e poi il seguente codice, prima relativo alla tabella ‘fornitori’, poi dall’unione dei due. Questa è la tabella ‘fornitori’ CREATE TABLE fornitori (id integer PRIMARY KEY AUTO_INCREMENT, marca varchar(50), distributore varchar(2),...
Continua a leggere-cover-(1)-thumb.jpg)
32Codice SQL per i capitoli 6 e 7
Questa è la tabella ‘dottori’ CREATE TABLE agenda (id integer PRIMARY KEY AUTO_INCREMENT, dottore varchar(30), data DATE, giorno varchar(10), ospedale varchar(30), citta varchar(10), Stato varchar(2)); INSERT INTO agenda (dottore, data, giorno, ospedale, citta, Stato) VALUES ('Gregory House', '2023-04-25', 'Lunedì', 'Plainsboro', 'Princeton', 'NJ'); INS...
Continua a leggereLe nostre guide possono essere molto utili per muovere i primi passi nel mondo della programmazione, ma se vuoi iniziare una nuova carriera in ambito digital & tech con il supporto costante dei docenti e tantissime esercitazioni pratiche, ti consigliamo di frequentare uno dei corsi della nostra Hackademy!
Scopri i corsi