Torna all'elenco degli articoli Articoli
Tempo di lettura: 9 minuti

Termini SQL che i principianti dovrebbero conoscere

Avete iniziato a imparare l'SQL? Vi sentite un po' persi nel labirinto di nuove parole e idee? Ecco un elenco di 10 termini SQL assolutamente essenziali per i principianti.

Quando si inizia a imparare l'SQL, c'è molto da elaborare. E alcune di esse, anche i termini SQL di base, si perdono nella confusione. Se questo è il vostro caso, mettete tra i preferiti questo articolo: sarà un utile riferimento.

Spiegherò questi termini SQL di base con le parole più semplici possibili. Non stiamo cercando di ottenere una precisione scientifica; la cosa più importante è che comprendiate i fondamenti dell'SQL.

Siete pronti? Andiamo!

Sezione uno: basi del database

Database

Un database è un insieme strutturato di dati memorizzati su un computer. È possibile elaborare questi dati in vari modi, ad esempio analizzarli, aggiornarli, copiarli, cancellarli, ecc. Oggi i database sono ovunque. Vengono utilizzati da banche, società di taxi, siti web, ospedali e persino dalle applicazioni del vostro smartphone. Viviamo in un mondo che funziona grazie ai dati memorizzati nei database.

Se siete interessati a creare strutture di database, date un'occhiata al nostro percorso Creazione di strutture di database. Contiene cinque corsi interattivi in cui imparerete a conoscere i tipi di dati, a creare strutture di tabelle in SQL e a utilizzare vincoli, indici e viste. Gli oltre 320 esercizi interattivi vi forniranno molte conoscenze e molta pratica.

Database relazionale

Si tratta di un termine importante che spesso ha definizioni estremamente complesse. Mi atterrò a quella che Edgar Frank Codd - geniale matematico e capostipite dei database e dell'SQL - ha dato nel 1970: un database relazionale è una struttura predefinita di una o più tabelle. I dati contenuti nelle tabelle possono essere messi in relazione in base ai loro valori. (Ad esempio, due colonne di tabelle diverse possono condividere lo stesso ID, che collega le due tabelle).

I database relazionali sono il tipo più diffuso sul mercato, ma ne esistono altri. Alcuni database utilizzano un tipo diverso di struttura dei dati; possono essere basati su:

  • Colonne - Cassandra, Druid, HBase.
  • Coppie chiave-valore - Oracle NoSQL Database, OrientDB, Redis.
  • Documenti - Apache CouchDB, IBM Domino, MongoDB.
  • Grafici - AllegroGraph, InfiniteGraph, Apache Giraph.

Se state pensando di lavorare con i database, per ora concentratevi sui database relazionali. Se non sapete già da ora che avrete bisogno di un altro tipo di database, quasi sicuramente utilizzerete un database relazionale. Il corso SQL Basics è un buon punto di partenza per acquisire queste conoscenze.

Sistema di gestione dei database (DBMS)

Come suggerisce il nome, un DBMS è un programma informatico che consente di lavorare con un database. Il database stesso è semplicemente un insieme di dati memorizzati su un disco rigido. È necessario accedervi in qualche modo, ed è qui che un DBMS si rivela utile.

A questo punto è sufficiente sapere che un DBMS è il software in cui si scrivono le query SQL, che si connette al database e restituisce i dati richiesti. Esistono molti DBMS sul mercato, sia a pagamento che open-source (che sono più diffusi). La scelta tra questi è principalmente una questione di preferenze personali e di finalità. Se si sceglie di imparare l'SQL, si utilizzerà un DBMS. I DBMS più popolari sono:

Il mio collega Adrian ha scritto un ottimo articolo sui DBMS, in cui spiega esattamente quali sono i DBMS utilizzando degli esempi. Se avete bisogno di maggiori dettagli, è un'ottima risorsa. Volete sapere quale DBMS scegliere per uso aziendale o privato? Prendete spunto dai professionisti: The Most Popular Databases in 2020 contiene i risultati dell'ultimo sondaggio di Stack Overflow.

Tabella

La maggior parte di noi capisce intuitivamente cosa sia una tabella di database: dati in una struttura logica di colonne e righe. Molto probabilmente riuscite a immaginare una tabella di database nella vostra testa. In caso contrario, ecco un esempio:

Column 1Column 2Column 3
Row 1
Row 2
Row 3
Row 4

Con SQL è possibile scrivere query che individuano specifici "frammenti" di tabella, ovvero i valori in determinate righe o colonne. È possibile anche selezionare un singolo valore. Inoltre, SQL consente di analizzare, eseguire calcoli o persino modificare i dati di una tabella. E non sempre si lavora con una sola tabella. A volte si scrive una query che fa riferimento a più tabelle. Ad esempio, si potrebbe avere un elenco di clienti in una tabella e un elenco di ordini in un'altra tabella. Con un'unica query SQL è possibile scoprire quali clienti hanno ordinato più merce e cosa hanno ordinato. Ciò richiede un comando noto come SQL JOIN, che viene trattato nel nostro percorso SQL Basics.

Colonna

Una colonna fa parte di una tabella. In un database relazionale, una colonna è una raccolta di valori di dati di un tipo specifico; esiste un valore di colonna per ogni riga del database.

Ad esempio, guardate il vostro elenco di contatti. Probabilmente avete nomi e cognomi dei vostri amici, numeri di telefono, indirizzi e-mail e così via. Se li metteste tutti in una tabella di database, avrebbero l'aspetto dell'esempio seguente. Notate che tutte le informazioni nella colonna email (che abbiamo colorato) sono dello stesso tipo: indirizzi e-mail. Le colonne servono proprio a questo: a memorizzare un tipo di informazioni.

first_namesurnamephone_numberemail
AnnJarvis888-555-1234jarvis.ann@company.com
TomLau818-555-4567t_lau145@email.co
MikeHigdon303-555-0987mikehigdon@painting.it
MariaHernandez818-555-3498mhernandez@business.us

Riga/Record

Le righe (chiamate anche record) contengono celle (chiamate anche campi) che memorizzano i valori delle singole colonne. A differenza delle colonne, le righe possono contenere più tipi di dati. Ciò che differenzia le righe è che tutti i dati in esse contenuti descrivono una cosa specifica. Inoltre, a differenza delle colonne, è possibile avere un numero qualsiasi di righe in una tabella; non è necessario conoscere il numero di righe in anticipo.

Nell'esempio di un elenco di contatti, ogni riga rappresenta tutte le informazioni di contatto di una singola persona. In questo esempio, una riga = una persona. In altri casi, una riga può rappresentare un articolo, una transazione di vendita, un pezzo di attrezzatura sportiva, ecc.

first_namesurnamephone_numberemail
AnnJarvis888-555-1234jarvis.ann@company.com
TomLau818-555-4567t_lau145@email.co
MikeHigdon303-555-0987mikehigdon@painting.it
MariaHernandez818-555-3498mhernandez@business.us

Sezione 2: Termini di base dell'SQL

Linguaggio di interrogazione strutturato (SQL)

SQL o Structured Query Language è il linguaggio che si usa per comunicare con il database. A differenza di alcuni linguaggi di programmazione, l'SQL è piuttosto semplice e si basa su un linguaggio semplice. I comandi SQL sono più simili a frasi che a codici informatici. In altre parole, SQL è il linguaggio che si usa per trovare, modificare, aggiungere o cancellare dati in un database.

Trovo che imparare l'SQL sia più simile allo spagnolo o al francese che a un linguaggio di programmazione informatica. Anzi, direi che è ancora più facile perché si conoscono già tutte le parole. Bisogna solo scoprire come mettere insieme le parole giuste in una query SQL.

L'SQL ha più di 40 anni. E non andrà da nessuna parte. È uno standard ufficiale del settore, approvato dall'Organizzazione Internazionale per la Standardizzazione (ISO) e dall'American National Standards Institute (ANSI, che è un'organizzazione membro dell'ISO).

Tutte le moderne soluzioni di database relazionali utilizzano SQL come strumento di base. Anche se esistono diversi dialetti di SQL (ad esempio SQL Server, MySQL o PostgreSQL), le differenze tra SQL standard e un dialetto sono generalmente minime. Si può facilmente consultare la documentazione di ogni dialetto per scoprire cosa deve essere fatto in modo diverso.

Query

Una query è un comando inviato al database. Nel nostro caso, si tratta di ciò che si scrive in SQL per ottenere il risultato desiderato. Le query SQL possono essere utilizzate per estrarre risultati dal database o per modificare il database stesso.

Immaginate che il database sia il vostro amico Joe. Lui sa dove trovare una buona pizza. Avete molta fame e vorreste una pizza. Cosa fate? Lo chiedete a Joe, dicendo qualcosa del tipo "Ehi Joe, dov'è una buona pizzeria?". Supponendo che si tratti di una domanda in SQL, la risposta sarebbe qualcosa di simile:

SELECT pizza_place
FROM Joe
WHERE restaurant_review = "good";

È semplice, vero? Anche senza sapere come scrivere una query SQL, si può capire che si stanno ottenendo informazioni su una pizzeria da Joe. Inoltre, questa pizzeria deve avere una buona recensione. Joe, il database, restituirebbe il risultato (cioè fornirebbe le informazioni richieste): Il piccolo ristorante di Papa Mario. Ma per ora basta con i riferimenti al cibo: il mio stomaco ha iniziato a brontolare!

GRUPPO PER

GROUP BY è un'importante clausola SQL che consente di raggruppare le righe che hanno gli stessi valori in una determinata colonna.

Supponiamo di voler vedere quanti clienti abbiamo in una determinata città. Aggiungendo GROUP BY city alla vostra query, nei risultati saranno elencate tutte le righe (clienti) con lo stesso valore nella colonna city. Questo è molto utile per riassumere i dati e creare rapporti. Per saperne di più, consultate il corso Creating Basic SQL Reports dopo aver completato la formazione di base su SQL.

SQL offre anche diverse estensioni di GROUP BY, chiamate così perché estendono le capacità di raggruppamento di GROUP BY. Si tratta di ROLLUP, CUBE e GROUPING SETS, che consentono di fare cose interessanti come aggiungere subtotali a un'analisi. Le estensioni di GROUP BY sono più avanzate, quindi prima di impararle aspettate di aver acquisito familiarità con GROUP BY. Quando sarete pronti, consultate il nostro GROUP BY Extensions in SQL corso. Se lavorate con i dati o i report, le nozioni apprese in questo corso vi saranno davvero utili.

Funzioni di aggregazione

Le funzioni aggregate consentono di eseguire calcoli numerici sui dati. La query restituisce quindi informazioni sintetiche su una determinata colonna o su un elenco di risultati.

Esistono cinque funzioni aggregate SQL di base:

  • MIN() restituisce il valore più piccolo di una colonna.
  • MAX() restituisce il valore più alto di una colonna
  • SUM() restituisce la somma di tutti i valori numerici di una colonna.
  • AVG() restituisce il valore medio di tutti i valori numerici di una colonna.
  • COUNT() restituisce il numero di tutti i valori di una colonna (ad esempio, se ci sono 45 valori ID nella colonna id, COUNT(id) restituirà 45).

Per sapere come utilizzare queste funzioni, leggete la nostra Guida per principianti alle funzioni aggregate di SQL. Potete anche guardare il nostro tutorial su YouTube, dove il mio collega Adrian vi spiegherà tutto in modo molto chiaro. (Ma ricordate: le funzioni aggregate di SQL si imparano meglio quando si conoscono già le basi di SQL.

Termini SQL

Salvate questo foglio informativo di SQL Basics

Ecco il mio elenco dei concetti di base che chiunque inizi ad imparare SQL dovrebbe conoscere. Se vi è piaciuto il mio articolo o se volete vedere spiegati altri termini di SQL, scrivete un commento qui sotto.

Ricordate che se non capite bene qualcosa all'inizio del vostro studio, imparare concetti avanzati sarà molto più difficile. Non abbiate quindi paura di chiedere aiuto. Tutti abbiamo bisogno di fare domande: è così che miglioriamo!