Vai al contenuto principale

Glossario dei comandi SQL — Panoramica dei 25 comandi SQL più popolari

Impara le basi dei 25 comandi SQL più popolari e come usarli.
Aggiornato 3 giu 2026  · 8 min leggi

Cos'è SQL?

SQL, acronimo di Structured Query Language, è uno strumento potente per cercare tra grandi quantità di dati nei database e restituire informazioni specifiche per l'analisi. Imparare SQL è un requisito di base per chiunque voglia entrare nel mondo dei dati, che si tratti di ruoli come business analyst, data analyst, data scientist o data engineer. 

In questo tutorial, imparerai 25 dei comandi SQL più comuni, sufficienti per la maggior parte delle attività legate ai database.

Comandi SQL con esempi

Tabella di esempio

Per tutto il tutorial useremo le tabelle films e soundtracks.

films 

movie_name

director

revenue

date

genre

language

Avengers: Age of Ultron

J. Whedon

1400000000

2015

Azione

Inglese

Amelie

Jean-Pierre Jeunet

174000000

2002

Drammatico

Francese

soundtracks

soundtrack

composer

date

Inception: Music from the Motion Picture

Hans Zimmer

2010

Le Fabuleux Destin D’Amelie Poulain

Yann Tiersen

2001

1. SELECT

L'istruzione SELECT viene usata per specificare quali colonne di una tabella del database includere nel risultato. 

Questo esempio seleziona solo le colonne movie_name e director; le altre colonne non vengono restituite.

SELECT movie_name, director
FROM films;

Per selezionare tutte le colonne di una tabella, puoi usare SELECT * (pronunciato “star”). Questo esempio seleziona tutte le colonne dalla tabella films.

SELECT * 
FROM films;

2. LIMIT

Limitare il numero di righe restituite da una tabella è un trucco utile per velocizzare l’esecuzione delle query. Per limitare il numero di righe, puoi usare il comando LIMIT. Questo esempio seleziona tutte le colonne dalla tabella films e poi limita i risultati alle prime dieci righe.

SELECT *
FROM films
LIMIT 10;

3. AS

Per rinominare una colonna o una tabella nei risultati, puoi usare il comando AS per impostare un alias in output. Questo esempio seleziona la colonna movie_name e le assegna l’alias movie_title.

SELECT movie_name AS movie_title
FROM films;

4. SELECT DISTINCT

I dataset spesso contengono righe o valori duplicati in una colonna. Combinare SELECT con DISTINCT elimina i duplicati. Questo esempio restituisce i valori unici della colonna director.

SELECT DISTINCT director
FROM films;

5. COUNT

COUNT() restituisce il numero di righe nella tabella o nel gruppo. Questo esempio restituisce il numero di righe nella tabella films, quindi rinomina il risultato come number_of_films.

SELECT COUNT(*) AS number_of_films
FROM films;

Inizia a imparare SQL gratis

Introduzione a SQL

BeginnerSkill Level
2 h
1.6M learners
Impara a creare e interrogare database relazionali usando SQL in sole due ore.
See DetailsRight Arrow

Manipolazione dei dati in SQL

BeginnerSkill Level
4 h
321.2K learners
Padroneggia le query SQL complesse necessarie per rispondere a un’ampia varietà di domande di data science e preparare dataset solidi per l’analisi in PostgreSQL.

6. MIN 

MIN() restituisce il valore minimo in una colonna numerica. Per le colonne di testo, MIN() restituisce il primo valore in ordine alfabetico. Questo esempio restituisce il film con il ricavo più basso. 

SELECT MIN(revenue) AS minimum_revenue,
FROM films;

7. MAX

MAX() restituisce il valore massimo in una colonna numerica. Per le colonne di testo, MAX() restituisce l’ultimo valore in ordine alfabetico. Questo esempio restituisce il film con il ricavo più alto. 

SELECT MAX(revenue) AS maximum_revenue,
FROM films;

8. SUM

SUM() restituisce il totale dei valori numerici. Questo esempio restituisce il ricavo totale di tutti i film elencati nella tabella films

SELECT SUM(revenue) AS total_revenue
FROM films;

9. AVERAGE

AVERAGE calcola la media aritmetica di una colonna. Questo esempio restituisce il ricavo medio di tutti i film elencati nella tabella films

SELECT AVERAGE(revenue) AS average_earned
FROM films;

10. WHERE

La clausola WHERE filtra le righe che soddisfano una certa condizione. Ad esempio, sotto stiamo filtrando i film che hanno incassato più di 500 milioni di dollari

SELECT revenue 
FROM films
WHERE revenue > 500000000;

Si possono usare anche altri operatori condizionali come <, >, =>, <=, == (uguale), != (diverso) per il filtraggio.

11. HAVING

La clausola HAVING è simile a WHERE, ma può essere usata solo con funzioni di aggregazione, mentre WHERE no. Per esempio, nella query qui sotto, scegliamo tutti i generi cinematografici che hanno almeno 50 film nella loro categoria:

SELECT movie_name, director, date, COUNT(genre)
FROM films
GROUP BY genre
HAVING COUNT(genre) >= 50;

Ecco un altro esempio che raggruppa i film per classificazione d’età e sceglie solo le classificazioni con ricavo medio superiore a 100 milioni:

SELECT movie_name, director, date, revenue
FROM films
GROUP BY age_rating
HAVING AVERAGE(genre) >= 100;

12. AND

L’operatore AND si usa quando si filtrano righe che soddisfano più di una condizione. Nell’esempio sotto, filtriamo i film in inglese che hanno incassato più di 500 milioni di dollari.

SELECT *
FROM films
WHERE revenue > 500000000 AND
     language == "English";

13. OR

OR è un altro operatore condizionale che ti permette di selezionare righe se una qualunque delle condizioni separate da OR è vera. Questo esempio restituisce i film in inglese che hanno incassato meno di 100 milioni di dollari o i film in francese che hanno incassato più di 500 milioni di dollari. 

SELECT *
FROM films
WHERE (revenue < 100000000 AND language == "English") OR
     (revenue > 500000000 AND language  == “French”);

14. BETWEEN

BETWEEN ti permette di selezionare righe all’interno di un certo intervallo, rendendo le clausole WHERE più semplici e leggibili. Nell’esempio sopra, scegliamo tutti i film usciti tra il 2020 e il 2022.

SELECT *
FROM films
WHERE date BETWEEN 2020 AND 2022;

15. IN

L’operatore IN è una scorciatoia per più istruzioni OR. Questo esempio restituisce tutti i film usciti in uno qualsiasi di questi anni — 1998, 1966, 2001 e 2012.

SELECT movie_name, date, revenue
FROM films
WHERE date IN (1998, 1966, 2001, 2012);

16. LIKE

L’operatore LIKE ti consente di cercare pattern in una colonna di testo usando stringhe speciali chiamate wildcard. Le wildcard ti aiutano a trovare stringhe che corrispondono a un pattern specifico. Per esempio, usando la wildcard “A% W%” sulla colonna director troverai tutti i registi con nome che inizia per A e cognome che inizia per W. 

SELECT *
FROM films
WHERE director LIKE "A% W%";

17. GROUP BY

GROUP BY ti permette di raggruppare le righe in base ai valori di una colonna. GROUP BY si usa di solito con funzioni di aggregazione come COUNT, MIN, MAX, AVERAGE e altre. Nell’esempio sotto, troviamo il ricavo medio di ogni genere cinematografico.

SELECT AVERAGE(revenue), movie_name, director, date
FROM films
GROUP BY genre;

Avremmo potuto usare MIN, MAX o COUNT(revenue) per trovare il ricavo più basso, quello più alto o il numero di film in ciascun genere. Nota che l’istruzione GROUP BY praticamente non ha effetto sulla query se non è usata con una funzione di aggregazione.

18. ORDER BY

ORDER BY ti permette di ordinare le righe in base al valore di una colonna. Puoi ordinare in ordine crescente (default) o decrescente aggiungendo ASC o DESC. Questo esempio ordina i ricavi in ordine crescente. 

SELECT *
FROM films
ORDER BY revenue ASC;

19. UPDATE

UPDATE si usa per modificare i valori delle singole celle in una tabella esistente. Si usa con la parola chiave SET. Questo esempio aggiorna il regista “J. Whedon” in “Joss Whedon”

UPDATE films
SET director = "Joss Whedon"
WHERE director = "J. Whedon"

La clausola WHERE è fondamentale quando si scrivono istruzioni UPDATE. Senza di essa, la query sopra avrebbe reso tutti i film diretti da Joss Whedon.

20. ALTER TABLE

Puoi usare l’istruzione ALTER TABLE per modificare le proprietà della tabella e delle sue colonne (non i valori delle celle). Ad esempio, cambiare i nomi delle colonne, aggiungerne di nuove, eliminarle o modificarne il tipo di dato. Gli esempi sotto mostrano l’eliminazione della colonna date e l’aggiunta della colonna age_rating

ALTER TABLE films
DROP COLUMN date;
ALTER TABLE films
ADD COLUMN age_rating;

21. CREATE TABLE

CREATE TABLE crea una nuova tabella in un database. Sotto, creiamo una tabella “libraries” con quattro colonne — una colonna intera chiamata id, una colonna di caratteri chiamata name, una colonna di caratteri chiamata version e una colonna intera chiamata num_downloads.

CREATE TABLE libraries (
   lib_id int,
   name varchar(100),
   version varchar(100),
   num_downloads int
)

22. INSERT INTO

L’istruzione INSERT INTO può essere usata per aggiungere nuove righe a una tabella. In questo esempio, aggiungiamo il film “Doctor Strange” alla tabella films

INSERT INTO films (movie_name, director, revenue, date, genre, language)
VALUES ("Doctor Strange 2", “Sam Raimi”, 409000000, 2022, “Action”, “English”)

23. INNER JOIN

Il comando INNER JOIN seleziona le righe che hanno valori corrispondenti in entrambe le tabelle. Ad esempio, nella query qui sotto uniamo le tabelle films e soundtracks sulla colonna comune date, il che restituisce film e colonne sonore usciti negli stessi anni.

SELECT *
FROM films
INNER JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;

24. LEFT JOIN

Un LEFT JOIN mantiene tutti i record originali della tabella di sinistra e restituisce valori mancanti per le colonne della tabella di destra in cui il campo di join non ha trovato corrispondenze. 

SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;

25. RIGHT JOIN

Un RIGHT JOIN mantiene tutti i record originali della tabella di destra e restituisce valori mancanti per le colonne della tabella di sinistra in cui il campo di join non ha trovato corrispondenze.

SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;

Cheat sheet dei comandi SQL

Per saperne di più su SQL, dai un’occhiata a queste risorse:

Argomenti

Approfondisci SQL

Corso

Manipolazione dei dati in SQL

4 h
323.6K
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow