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

Termini SQL che i principianti dovrebbero conoscere - Parte 2

Questa è la seconda parte del mio elenco di termini SQL essenziali per i principianti. Nella prima, avete imparato cosa sono una tabella, un database relazionale e una query. Ora è il momento dei termini di database più avanzati. Ma non abbiate paura! Non vi sommergerò di definizioni scientifiche. Vi spiegherò tutto in modo semplice, affinché possiate capire facilmente.

Se volete rivedere i termini SQL di base, consultate il mio precedente articolo, Termini SQL che i principianti dovrebbero conoscere. Ricordate di mettere tra i preferiti questo articolo. Sarà un'utile fonte di informazioni.

Senza ulteriori indugi, ecco altri termini SQL da conoscere.

Termini SQL

Alias

Un alias è un nome che possiamo definire per una specifica colonna o tabella in una query SQL. Di solito, utilizziamo gli alias per semplificarci la vita: per visualizzare un nome di colonna più leggibile o per abbreviare un nome di tabella lungo.

La nostra tabella potrebbe avere un nome comodo come order. Ma se la nostra tabella si chiamasse orders_january_2020_shipped? E se fosse ancora più lunga e complicata?

Sarebbe scomodo scrivere il nome completo della tabella ogni volta che vi si fa riferimento. Per esempio, per fare riferimento alla colonna confirmed_payment nella tabella citata sopra, bisognerebbe digitare orders_january_2020_shipped.confirmed_payment.

Tuttavia, è possibile utilizzare la clausola AS per definire un alias, in questo caso, j, per orders_january_2020_shipped. Ora sarà più facile indicare gli ordini già pagati: j.confirmed_payment.

È anche possibile utilizzare un alias se si sta scrivendo una query SQL lunga e complessa. Ad esempio, si può inserire nella query: j.confirmed_payment AS jcp. Ora, per il resto della query, si può semplicemente usare jcp invece di j.confirmed_payment.

Attenzione però a non perdersi in questi nomi.

Ok, forse vi ho confuso un po' le idee. Lasciate che vi mostri un esempio per farvi capire cosa intendo.

SELECT column as c
FROM table as t
WHERE t.c = "something";

Ricordate che un alias esiste solo per la durata della query. Se in seguito si scrive un'altra query separata, si possono nominare le colonne o le tabelle in modo diverso.

Gli alias in SQL sono molto utili e vale la pena di sapere come usarli. Probabilmente li apprezzerete di più quando lavorerete con SQL JOINs.

Null

NULL indica che il valore dei dati in una specifica cella della tabella è mancante o sconosciuto. È importante capire che cos'è NULL e quando viene utilizzato. Senza una buona comprensione di NULL, sarà difficile lavorare con i database.

Innanzitutto, una cosa da ricordare assolutamente: NULL non è 0, e non significa vuoto! NULL si verifica quando il valore in una determinata cella della tabella è sconosciuto o indeterminato.

NULL I valori possono essere applicati a qualsiasi tipo di dati: interi, date, valori VARCHAR o qualsiasi altro tipo di dati. Ma bisogna fare attenzione quando si usa NULL. Quando si utilizzano operazioni di confronto, compresi gli operatori NULL, il risultato sarà sempre NULL.

Quando si impara a conoscere NULL, si parla di logica a tre valori. Volete sapere di cosa si tratta? Leggete l'articolo Capire l'uso di NULL nella logica a tre valori di SQL per saperne di più.

Unisci

JOIN è un operatore SQL che consente di combinare i dati di due o più tabelle. In genere concatena le righe con valori uguali per colonne specifiche. Se si sa già cosa sono le chiavi primarie e le chiavi esterne, la funzione JOIN è qualcosa che le collega.

Diversi tipi di JOIN restituiscono risultati diversi. Ecco alcuni tipi di JOIN:

  • Inner JOIN restituisce tutte le righe che corrispondono alla condizione indicata da entrambe le tabelle.
  • La funzioneLeft JOIN restituisce tutte le righe della tabella di sinistra con i valori corrispondenti della tabella di destra. Se una delle righe non ha valori corrispondenti nella tabella di destra, viene visualizzato NULL.
  • La funzioneRight JOIN restituisce lo stesso risultato di cui sopra, ma al contrario. Il risultato sarà costituito da tutte le righe della tabella di destra con i valori corrispondenti della tabella di sinistra e da NULL se non c'è corrispondenza.
  • Full JOIN restituisce tutte le righe di entrambe le tabelle.
  • Cross JOIN restituisce tutte le combinazioni di righe di entrambe le tabelle. Ecco una guida illustrata alla Cross JOIN di SQL.

Ecco altri casi d'uso di JOIN:

Per saperne di più e per esercitarsi a unire le tabelle, consultare il nostro corso interattivo SQL JOINs interattivo. Abbiamo anche un ottimo foglio informativo sulle JOIN SQL. Inseritelo tra i preferiti del vostro browser. Vi tornerete più volte.

Chiave primaria

Non tutte le colonne hanno lo stesso ruolo. Alcune colonne sono identificatori primari della tabella in questione: hanno valori diversi in ogni riga. Questa colonna è chiamata chiave primaria.

Una chiave primaria viene utilizzata per identificare le righe e l'unicità di un dato record garantisce che non appaiano duplicati nella tabella. Se si tenta di inserire una nuova riga con un valore duplicato nella colonna della chiave primaria, la riga verrà rifiutata dal database.

Ad esempio, immaginate la tabella orders ... una tabella. Molto probabilmente avrà colonne come product, customer, purchase_date, ecc. Tuttavia, per rendere tutto più chiaro e semplice, è utile avere una colonna order_id. Ogni riga avrà il suo ID univoco. Questa sarà la chiave primaria.

Questo è molto importante! Nessuna cella della colonna della chiave primaria può essere vuota. Questa colonna non può nemmeno contenere valori NULL. Per un aggiornamento su NULL, si veda la sezione precedente.

Per la tabella orders una riga con un valore NULL nella colonna order_id verrà rifiutata dal database. In altre parole, le chiavi primarie garantiscono che tutte le righe della tabella abbiano valori unici e non nulli nella colonna della chiave primaria. In parole povere, se fosse altrimenti, molto probabilmente non tutti gli ordini arriverebbero ai vostri clienti.

Volete saperne di più sulle chiavi primarie? Leggete Che cos'è una chiave primaria in SQL? Questo ottimo articolo contiene quasi tutto quello che c'è da sapere sull'argomento.

Chiave esterna

È uno di quei concetti che sembrano difficili e astratti, ma in realtà è semplice. Le chiavi esterne sono un concetto centrale nei database SQL. Ci aiutano a mantenere l'integrità dei dati e di solito lavorano con le chiavi primarie per JOIN due tabelle.

Immaginiamo due tabelle: product e customers. Entrambe avranno probabilmente la colonna product_id, che possiamo utilizzare per collegare il prodotto a una persona specifica che lo ha ordinato. Nella seconda tabella, ci riferiremo a questa colonna come chiave esterna. La chiave esterna controlla se la tabella madre (quella con la chiave primaria) ha un valore simile.

Volete saperne di più sulle chiavi esterne? Vi consiglio Cos'è una chiave esterna in SQL? del mio collega Ignacio.

Se volete imparare a conoscere le chiavi esterne creando tabelle e la loro struttura, vi consiglio i corsi interattivi di SQL in Creare la struttura del database. Questi cinque corsi contengono oltre 330 esercizi in totale. Se state pensando di intraprendere la carriera di Data Engineer, questo corso è perfetto per voi.

Vincoli SQL

Sapete già che le tabelle nei database relazionali devono avere una struttura specifica. Tuttavia, a volte è necessario aggiungere ulteriori restrizioni a certe colonne.

Ad esempio, nella tabella customer le colonne first_name, last_name e client_id non possono essere vuote. Inoltre, la colonna email_adress deve avere valori unici. In questo caso, i vincoli SQL sono utili.

  • Not Null assicura che nessuno dei valori della colonna sia vuoto (cioè, non può contenere un valore NULL ).
  • Unique assicura che la colonna non contenga valori duplicati (cioè, tutti i valori della colonna devono essere unici).
  • Chiave primaria assicura che ogni valore della colonna identifichi in modo univoco ogni riga della tabella.
  • Lachiave esterna garantisce che una colonna sia collegata alla chiave primaria di una colonna di un'altra tabella.
  • Controlla verifica la condizione che segue.
  • Default assicura che la colonna abbia un valore predefinito. Questo valore viene utilizzato quando l'utente non inserisce un valore nella colonna.

Grazie ai vincoli SQL, le tabelle conterranno dati corretti che saranno più facili da analizzare in seguito. Per ulteriori informazioni ed esempi su come utilizzare i vincoli SQL, consultare Cos'è un vincolo SQL?

Subquery

In pratica, una sottoquery è una query SQL all'interno di un'altra query SQL. Invece di suddividere il progetto in tanti piccoli elementi, è possibile scrivere un'unica query SQL logica per portare a termine il lavoro.

La potenza delle subquery è poco apprezzata. Molti utenti hanno paura di usare le subquery, anche se sono semplici e utili.

Esistono diversi tipi di subquery SQL:

  • Lesubquery scalari restituiscono un singolo valore, o esattamente una riga e una colonna. Si trovano spesso nelle clausole WHERE, dove aiutano a filtrare i risultati della query principale.
  • Lesubquery a righe multiple restituiscono una colonna e più righe. Di solito vengono utilizzate con operatori come IN, NOT IN, ANY, ALL, EXISTS, o NOT EXISTS.
  • Lesubquery correlate sono interessanti. La query interna si basa sulle informazioni ottenute dalla query esterna.

Esistono molte combinazioni e possibilità di subquery. Volete saperne di più? Date un'occhiata alla Guida per principianti alle subquery SQL del mio collega Ignacio. Se volete approfondire i tipi di subquery, leggete Quali sono i diversi tipi di subquery SQL?

Non posso spiegare bene le subquery SQL in così poche parole. Prendetevi il tempo necessario per impararle bene. Potete farlo con il nostro SQL Basics corso. Potete anche guardare le clip del nostro canale YouTube We Learn SQL in cui il mio amico Adrian vi spiegherà tutto sulle subquery SQL. Ricordatevi di iscrivervi e di dare un pollice in su!

Strumenti del database

Immagino che a volte vi imbatterete in termini relativi a soluzioni e strumenti per lavorare con i database. Ne ho scelti tre importanti da analizzare.

MS SQL Server

MS SQL Server

Nell'articolo precedente vi ho parlato di DBMS. Se non vi ricordate cos'è, potete tornare indietro e scoprirlo. In breve, si tratta di un programma per lavorare con i database.

Uno dei DBMS più diffusi al mondo è MS SQL Server. Il suo principale svantaggio è che la versione completa è a pagamento.

SQL Server 2019, nome in codice Aris, è la quindicesima e ultima edizione di questo strumento. La prima edizione è stata creata nel 1989. È il fiore all'occhiello, ma non l'unico, dello strumento di database del gigante informatico di Redmond.

MS SQL Server si basa su Transact-SQL (T-SQL), che è un'estensione dello standard ANSI/ISO. T-SQL è un SQL standard in cui alcune cose sono definite in modo leggermente diverso.

Dal punto di vista dell'utente occasionale, non ci sono grandi differenze. Se siete in grado di utilizzare SQL Standard, sarete in grado di utilizzare T-SQL altrettanto bene. È possibile verificare le differenze nella documentazione.

Se volete imparare subito a scrivere query SQL in MS SQL Server, vi consiglio questo corso interattivo SQL Basics in MS SQL Server. Imparerete le basi necessarie e padroneggerete la sintassi a sufficienza per scrivere le vostre query attraverso 131 esercizi.

Non siete convinti di utilizzare un DBMS e siete ancora alle prese con l'elaborazione dei dati in Excel? Questo programma non mi dispiace. È un potente programma multi-tasking. Ma ha i suoi limiti. Allora, perché non utilizzare MS SQL Server? Il mio collega Roman vi aiuterà a rispondere a questa domanda nel suo articolo Pro e contro di Microsoft SQL Server.

PostgreSQL

PostgreSQL

PostgreSQL, chiamato anche Postgres, è un altro grande strumento DBMS. Nei miei articoli ho più volte ammesso che è il mio preferito. Perché? Innanzitutto, è open source, il che significa che è gratuito.

In secondo luogo, ha un'enorme comunità alle spalle. Appassionati sviluppatori di tutto il mondo aggiungono ogni giorno nuove estensioni e patch. Si tratta di una delle comunità informatiche più attive del web. Potete essere certi che, in caso di problemi, qualcuno vi aiuterà.

Ma non dovete fidarvi della mia parola. Scoprite chi utilizza PostgreSQL leggendo Quali grandi aziende usano PostgreSQL? Per cosa lo usano?

Potete facilmente utilizzare PostgreSQL in qualsiasi progetto relativo al lavoro con i database relazionali. Davvero, è uno strumento brillante.

Se siete completamente inesperti, iniziate con SQL Basics in PostgreSQL. Imparerete le basi necessarie per iniziare a lavorare con PostgreSQL. Poi vi consiglio la traccia SQL Practice in PostgreSQL. Vi tornerà utile prima del colloquio, prima dell'esame o semplicemente quando vorrete ripassare Postgres.

PostGIS

PostGIS

Una delle estensioni di PostgreSQL più interessanti è PostGIS. Si tratta di un componente aggiuntivo che consente di memorizzare ed elaborare dati geografici in PostgreSQL.

I set di dati geografici (come le coordinate dei punti su una mappa o i confini delle aree) possono essere enormi. Spesso si tratta di terabyte di dati a cui altrimenti sarebbe difficile accedere.

Grazie a PostGIS, è possibile farlo in modo semplice e, soprattutto, veloce. Ciò che normalmente richiederebbe ore, ora può richiedere solo pochi secondi.

Volete un esempio di sito che utilizza PostGIS? OpenStreetMap è uno di questi.

Se tutto questo vi sembra magia nera, vi consiglio questo corso PostGIS. È uno dei migliori corsi di questo tipo sul mercato. È stato il nostro corso del mese su LearnSQL.it e ne ho parlato con la sua co-creatrice, Agnieszka Kozubek-Krycuń, Chief Content Officer di Vertabelo.