Corso
Un database relazionale è un insieme di tabelle (dataset con righe e colonne) che contengono informazioni correlate ad altre tabelle nel database.
Il diagramma qui sotto mostra informazioni sulle colonne in due tabelle di un database relazionale di esempio. Entrambe le tabelle contengono colonne chiamate customer_id, che stabiliscono una relazione tra le tabelle. Man mano che l'azienda cresce e registra migliaia (o milioni) di ordini, archiviare i dati in tabelle separate aiuta a ottimizzare lo spazio e ridurre le dimensioni del database.

SQL, ovvero Structured Query Language, è il linguaggio standard per interagire con i database relazionali. Con SQL puoi interrogare, cioè porre domande, ai dati in un database relazionale. Lavorare con SQL e con i database relazionali è un set di competenze prezioso per un data analyst, un data engineer o un data scientist.
Se hai iniziato a cercare modi per imparare SQL, avrai notato i molti dialetti diversi disponibili, con alcune distinzioni chiare (e meno chiare) tra loro. Quindi, da dove cominciare? Quale versione di SQL è più utile per te se non l'hai mai usato prima? In questo articolo ci concentreremo su quattro dei sistemi di gestione di database più popolari — PostgreSQL, MySQL, SQLite e SQL Server — e sulle loro varianti di sintassi SQL.
Il grafico qui sotto, tratto da Stack Overflow Trends, dà un'idea di quanto spesso si parli di ciascuna di queste piattaforme: ogni linea rappresenta la percentuale di tutte le domande su Stack Overflow relative a ciascuna versione di SQL.

MySQL è costantemente la versione di SQL più popolare nelle domande su Stack Overflow. Al secondo posto c'è Microsoft SQL Server (incluso T-SQL, il nome del dialetto SQL di Microsoft), che rimane un tag costantemente più popolare rispetto a PostgreSQL e SQLite. Ciò significa che, se hai una domanda specifica su uno di questi sistemi, è più probabile che qualcun altro l'abbia già posta.
Qual è la differenza?
PostgreSQL, MySQL e SQLite usano una sintassi molto simile, con alcune differenze notevoli evidenziate di seguito. Microsoft SQL Server presenta il contrasto maggiore nella sintassi SQL, oltre a una vasta gamma di funzioni non disponibili su altre piattaforme. La tabella seguente evidenzia alcuni esempi di differenze di base tra le piattaforme SQL.
| SQL Server | MySQL | PostgreSQL | SQLite | |
|---|---|---|---|---|
| SELECT ... | Select [col1], [col2] | SELECT col1, col2 | SELECT col1, col2 | SELECT col1, col2 |
| I dati dalle tabelle fanno distinzione tra maiuscole e minuscole? | Sì WHERE name = ‘John’ oppure WHERE name = ‘john’ non sono la stessa cosa | No WHERE name = ‘John’ oppure WHERE name = ‘john’ sono la stessa cosa | Sì WHERE name = ‘John’ oppure WHERE name = ‘john’ non sono la stessa cosa | Sì WHERE name = ‘John’ oppure WHERE name = ‘john’ non sono la stessa cosa |
| Uso delle virgolette | name = ‘John’ soltanto | name = ‘John’ oppure name = “John” | name = ‘John’ soltanto | name = ‘John’ oppure name = “John” |
| Alias per colonne e tabelle | SELECT AVG(col1)=avg1 | SELECT AVG(col1) AS avg1 | SELECT AVG(col1) AS avg1 | SELECT AVG(col1) AS avg1 |
| Lavorare con le date | GETDATE() DATEPART() | CURDATE() CURTIME() EXTRACT() | CURRENT_DATE() CURRENT_TIME() EXTRACT() | DATE(‘now’) strftime() |
| Funzioni finestra, ad es. OVER(), PARTITION BY() | Sì | Sì | Sì | Sì |
Da dove comincio?
Per chi ha poca o nessuna esperienza con SQL e vuole acquisire competenze ampiamente applicabili, consiglio di iniziare con PostgreSQL. Nonostante la schiacciante popolarità di MySQL, PostgreSQL può essere una scelta migliore perché la sua sintassi è quella che si conforma più da vicino allo Standard SQL. Questo significa che puoi trasferire facilmente le tue competenze ad altri sistemi di gestione di database come MySQL o SQLite. Ad esempio, la query qui sotto aggrega i dati da un database di informazioni sulle vendite. Contiene una join, una funzione di aggregazione e un filtro. Questa sintassi genererà risultati identici in tutti e tre i sistemi.
Select
c.customer_name,
SUM(p.amount) AS total_sales
FROM customers AS c
LEFT JOIN purchases AS p
ON c.customers_id = p.customer_id
WHERE
c.customer_location = 'USA'
GROUP BY
c.customer_name;
Se prevedi di lavorare con Microsoft SQL Server nella tua carriera, ti consiglio di iniziare imparando T-SQL/Microsoft SQL. SQL Server continua a mantenere una quota di mercato significativa ed è un importante sistema di gestione di database in molti settori. Se non sei sicuro di quale dei due sia più importante per te, ti suggerisco di dare un'occhiata alle offerte di lavoro nel tuo campo per capire se c'è una preferenza per un sistema di database specifico in determinati ruoli o industrie.
In che modo DataCamp può aiutarti?
Su DataCamp offriamo attualmente due corsi di SQL che coprono gli argomenti introduttivi e le join in PostgreSQL. Abbiamo in sviluppo alcuni corsi interessanti su argomenti intermedi e avanzati in PostgreSQL. Stiamo anche sviluppando diversi corsi su SQL Server, incluso un corso Introduzione a T-SQL/Microsoft SQL che ti fornirà basi solide per lavorare con SQL Server. Puoi consultare la nostra roadmap dei corsi per maggiori informazioni.
Se vuoi esercitarti a interagire autonomamente con un database PostgreSQL, ti consiglio di esplorare i dataset su Kaggle. Se trovi qualcosa che ti interessa, importalo in PostgreSQL (i file CSV o SQLite si importano in PostgreSQL) e inizia a esplorare!
Vieni a insegnare con noi!
Ti piacerebbe condividere le tue conoscenze e competenze con i nostri 3 milioni di studenti su DataCamp? Siamo sempre alla ricerca di docenti che contribuiscano alla nostra libreria di corsi in continua crescita. La nostra lista dei desideri dei corsi evidenzia le competenze che speriamo di mettere a disposizione degli studenti nei prossimi mesi. Puoi candidarti a questo link. Non vediamo l'ora di collaborare con te!

