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

Che cos'è una query SQL?

Una query SQL è il comando SQL più elementare. È una domanda che si pone a un database. In questo articolo ci addentriamo nelle basi delle query SQL per iniziare subito il vostro viaggio in SQL con conoscenze pratiche!

SQL, o Structured Query Language, è un linguaggio di programmazione progettato per interagire con i database. Quando si vuole accedere ai dati di un database, per modificarli, cancellarli, aggiungerli o semplicemente estrarre informazioni, si usa SQL.

SQL può lavorare e interagire con grandi quantità di dati. La sua sintassi è semplice e lineare. Se volete saperne di più su SQL, la sua storia e le sue basi, leggete il nostro articolo che affronta proprio questa domanda: Che cos'è l'SQL?.

Domanda: Che cos'è l'SQL?

SQL (Structured Query Language) è un linguaggio di programmazione per la gestione di database relazionali. Consente di memorizzare, recuperare, aggiornare, inserire e analizzare i dati nelle tabelle. Questo rende l'SQL essenziale per la gestione e l'analisi dei dati.

Per chi vuole imparare l'SQL facendo pratica, consigliamo il nostro SQL per principianti corso che potete iniziare anche subito dopo aver letto questo articolo. Questo corso completamente interattivo contiene le basi essenziali di SQL in 129 esercizi!

Query SQL: Una domanda al database

Una query SQL è un comando utilizzato per ottenere dati da un database. È uno strumento flessibile per accedere ai dati necessari.

Una query SQL è essenzialmente una domanda che l'utente pone al database. Le domande possono variare in complessità, da "quali modelli di auto vengono venduti?" a "quante auto Volvo vengono vendute in media ogni anno all'azienda del signor Smith?".

In questo articolo esaminiamo alcuni esempi più semplici di query SQL, ovvero domande più semplici che si possono porre a un database. Prima di addentrarci ulteriormente, la nostra guida per principianti ai termini SQL può essere molto utile per capire alcune cose che stanno per arrivare!

Tabelle nei database SQL

I database SQL memorizzano le informazioni in tabelle. Ogni tabella ha un nome che di solito ci dice che tipo di informazioni memorizza: una tabella chiamata students probabilmente contiene informazioni sugli studenti, una chiamata course probabilmente memorizza informazioni sui corsi, ecc.

Ogni tabella è composta da colonne e righe. Le colonne costituiscono la struttura di una tabella. Ogni colonna ha un nome che indica quali informazioni contiene. Ha anche un tipo di dati che ci dice se le informazioni contenute nella colonna sono testo, numero, data e ora, ecc. Le righe contengono i dati stessi, definiti dalle colonne.

Vediamo un esempio: la tabella students. Contiene informazioni sugli studenti di un'università. Ha 5 colonne. Ecco il significato di ciascuna colonna:

  • id - l'ID univoco dello studente.
  • name - il nome e il cognome dello studente
  • Department - il dipartimento dell'università a cui appartiene lo studente.
  • avg_rating - la media dei voti dello studente (da 1 a 5).
  • current_year - l'anno in corso dello studente.

Le colonne name e department memorizzano valori stringa, id e current_year sono numeri interi e avg_rating è un numero in virgola mobile:

idnamedepartmentavg_ratingcurrent_year
1Tracy CarpenterComputer Science4.41
2Kornelia HoldingComputer Science3.671
3Will ParkerIT Management4.053
4Daria HendersonIT Management4.74
5James MartinsWorld History2.84
6Kim YuNew Media Arts3.963

Esempi di domande da porre

Pensiamo ad alcuni esempi di domande che possiamo porre a questa tabella:

  • Chi sono tutti gli studenti che studiano all'università?
  • Quali sono i nomi degli studenti che studiano all'università?
  • Quali sono i nomi degli studenti che hanno una valutazione media di almeno 4?
  • Quali sono gli studenti del primo anno del dipartimento di Informatica?
  • E così via.

Il numero di interrogazioni possibili con questa sola tabella è virtualmente infinito. Tutte hanno una struttura comune:

SELECT …
FROM students
…

Come si vede, utilizziamo il nome della nostra tabella, studentsin una query con la parola chiave FROM.

Come si scrive una query SQL?

In questo articolo ci concentriamo sulle parti fondamentali di qualsiasi query SQL: SELECT, FROM, e WHERE. Cerchiamo di ottenere alcuni dati dalla tabella students utilizzando queste parole chiave.

Esempio di query SQL 1: estrarre tutte le informazioni da una tabella (usando SELECT * nelle query)

SELECT *
FROM students;

Questo è il tipo di query più semplice. Seleziona tutte le colonne (usando il simbolo * dopo SELECT) e tutte le righe (senza alcun filtro) dalla tabella. In linguaggio naturale, questa query chiede: "dammi tutte le informazioni su tutti gli studenti".

Ecco come appare il risultato:

idnamedepartmentavg_ratingcurrent_year
1Tracy CarpenterComputer Science4.41
2Kornelia HoldingComputer Science3.671
3Will ParkerIT Management4.053
4Daria HendersonIT Management4.74
5James MartinsWorld History2.84
6Kim YuNew Media Arts3.963

Come si vede, si tratta di un'intera tabella già vista in precedenza. Vediamo un altro esempio.

Esempio di query SQL 2: Estrarre i nomi degli studenti, i loro dipartimenti e i loro anni correnti (selezionando colonne specifiche)

SELECT name, department, current_year
FROM students;

Questa query è un po' più complessa. Seleziona tutte le righe (anche in questo caso, senza filtro) ma non tutte le colonne: solo nome, dipartimento e anno corrente. La query dice: "dammi i nomi degli studenti, i loro dipartimenti e i loro anni".

Ecco come appare il risultato:

namedepartmentcurrent_year
Tracy CarpenterComputer Science1
Kornelia HoldingComputer Science1
Will ParkerIT Management3
Daria HendersonIT Management4
James MartinsWorld History4
Kim YuNew Media Arts3

È la stessa tabella di prima, ma con meno colonne. Vediamo un esempio ancora più avanzato.

Esempio di query SQL 3: Estrarre i nomi degli studenti di gestione IT (filtrare le query con WHERE)

SELECT name
FROM students
WHERE department = 'IT Management';

Questa query non seleziona solo una colonna, name, ma aggiunge anche un filtro per le righe. Seleziona solo le righe il cui valore department è uguale a 'IT Management'. Questa query chiede: "dammi i nomi degli studenti che studiano nel dipartimento di IT Management". Ed ecco il risultato:

name
Will Parker
Daria Henderson

Esempio di query SQL 4: Estrarre gli ID e i nomi degli studenti del quarto anno di IT Management (filtri multipli nelle query che utilizzano AND)

Spesso si desidera includere diverse condizioni di filtro. Nessun problema! Aggiungete tutte le condizioni che volete usando le parole chiave AND e OR. Se si hanno due condizioni legate insieme con la parola chiave AND, la query cerca le righe che soddisfano entrambe le condizioni. Se sono con OR, la query cerca le righe che soddisfano una delle due condizioni.

Vediamo un esempio:

SELECT id, name
FROM students
WHERE department = 'IT Management'
AND current_year = 4;

La query chiede: "dammi gli ID e i nomi degli studenti di IT Management che frequentano il quarto anno". Ecco il risultato:

idname
4Daria Henderson

Ed ecco un esempio di condizioni di filtro con OR.

Esempio di query SQL 5: Estrarre i nomi e i dipartimenti degli studenti di Gestione delle tecnologie informatiche o Storia del mondo (filtri multipli nelle query che utilizzano OR)

SELECT name, department
FROM students
WHERE department = 'IT Management'
OR department = 'World History';

Questa query chiede: "dammi i nomi e i dipartimenti degli studenti che sono in Gestione informatica o in Storia del mondo". Ecco come appare il risultato:

namedepartment
Will ParkerIT Management
Daria HendersonIT Management
James MartinsWorld History

Query SQL: Struttura generale

Riassumiamo e diamo un'occhiata alla struttura generale di una query SQL. La struttura generale di una query SQL è la seguente:

SELECT …
FROM …
WHERE …
GROUP BY …
HAVING …
ORDER BY …;

Di tutte queste parole chiave, solo due sono obbligatorie: SELECT e FROM - quelle che già conoscete. Esaminiamo ora ogni parola chiave:

  • SELECT è seguita dalle colonne che si vogliono ottenere dalla tabella (ad esempio, SELECT name, department, current_year) o dal simbolo * per selezionare tutte le colonne.
  • FROM è seguita dal nome della tabella da cui si vogliono ottenere le informazioni.
  • WHERE è seguito da una o più condizioni di filtro per i dati (ad esempio, WHERE current_year = 1).
  • GROUP BY è seguito da una o più colonne in base alle quali si desidera raggruppare i dati (ad esempio, GROUP BY department aggrega gli studenti in base ai loro dipartimenti).
  • HAVING è seguita da una condizione che filtra i gruppi di dati. Questa parola chiave viene sempre usata insieme a GROUP BY.
  • ORDER BY è seguita da una o più colonne in base alle quali si desidera ordinare i dati.

Imparate tutto sulle query SQL con il nostro corso "SQL per principianti"!

Con le query si può fare molto di più di quello che abbiamo trattato in questo articolo, come ad esempio raggruppare i dati con GROUP BY, ordinare i risultati con ORDER BY, e persino interrogare più tabelle contemporaneamente usando vari JOINs! Il nostro corso interattivo SQL per principianti corso interattivo vi fornisce la teoria e la pratica di tutti questi argomenti e molto altro ancora in modo divertente e interattivo. Vi invito a provarlo!