CodeGym /Corsi /SQL SELF /Sintassi base di SELECT: struttura e componenti della que...

Sintassi base di SELECT: struttura e componenti della query

SQL SELF
Livello 1 , Lezione 4
Disponibile

Allora, abbiamo già iniziato a capire SELECT, il comando SQL che serve per tirare fuori dati da una tabella o da più tabelle nel database. Possiamo dire che è come il tasto F5 del browser per il database: "fammi vedere cosa hai". La struttura base di una query è così:


        SELECT colonna1, colonna2, … colonnaN
        FROM tabella
        

Dove:

  • SELECT — è la parola chiave con cui parte la query.
  • colonna1, colonna2, ... — è la lista delle colonne da cui vuoi prendere i dati.
  • FROM tabella — indica la tabella da cui vengono estratti i dati.

Dai, spacchettiamo subito tutto con degli esempi!

Struttura principale del comando SELECT

Selezionare tutte le colonne. Se vuoi vedere tutti i dati di una tabella, puoi usare l’asterisco *. Per esempio, abbiamo la tabella students:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Per tirare fuori tutti i dati da questa tabella, usa questa query:


        SELECT * FROM students
        

E il risultato sarà questo set di colonne e righe:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

Cioè — tutta la tabella, proprio come volevi.

Selezionare colonne specifiche

Ovviamente, di solito vuoi prendere solo le colonne che ti servono, così non ti porti dietro dati inutili. Per esempio vuoi sapere i nomi e l’età degli studenti. Allora devi scrivere una query così:


        SELECT name, age FROM students
        

Il risultato della query sarà questo:

name age
Alex 17
Maria 19
Otto 21

Hai visto la differenza? Quando scegli solo le colonne che ti servono, la query va più veloce ed è più pulita.

Ordine di esecuzione della query

Le query SQL sono un po’ subdole: anche se scriviamo SELECT all’inizio, in realtà prima viene processata la parte FROM, e solo dopo viene restituito il risultato. Ecco come funziona dietro le quinte:

  1. Viene processata la tabella in FROM: il server trova la tabella indicata.
  2. Si applicano le condizioni alle righe (se ci sono): vengono prese solo le righe che rispettano le condizioni.
  3. Si selezionano le colonne indicate: dai record rimasti vengono estratti i dati che ti servono.

Quindi in una query come questa:


        SELECT name FROM students
        

Prima il server trova la tabella students, poi legge la colonna name, e solo dopo ti restituisce il risultato.

Esempi pratici

Esempio n°1: Lista degli studenti.

Immagina di essere l’amministratore dell’università e ti servono i nomi di tutti gli studenti. Query:

SELECT name
FROM students;

Risultato:

name
Alex
Maria
Otto

Esempio n°2: Aggiungiamo età e id.

Ora ti servono id, nomi ed età. Basta aggiungere altre colonne:

SELECT name, age, id
FROM students;

Risultato:

name age id
Alex 17 1
Maria 19 2
Otto 21 3

Esempio n°3: Aggiungiamo espressioni.

Supponiamo che vuoi sapere quanti anni mancano ai tuoi studenti per diventare maggiorenni.

Allora invece di age scrivi 21-age. Qui per semplicità supponiamo che la maggiore età sia a 21:

SELECT name, 21-age
FROM students;

E il risultato sarà questo:

name 21-age
Alex 4
Maria 2
Otto 0

Scoprirai di più sulle espressioni nelle prossime lezioni. Ora vediamo un po’ di errori con cui sicuramente qualcuno di voi si è già scontrato.

Errori tipici quando usi SELECT

Errori di battitura nei nomi di tabelle e colonne.

Uno degli errori più comuni è quando il nome della tabella o della colonna è scritto male.

Se nel database non c’è la tabella studentsz, ti becchi un errore:

SELECT name
FROM studentsz; -- Errore: tabella non esiste!

Oppure se la colonna si chiama name, ma tu scrivi student_name, di nuovo errore:

SELECT student_name -- Errore: colonna non esiste!
FROM students;

La soluzione è semplice: controlla sempre i nomi di tabelle e colonne.

Errori di sintassi nella query.

Un altro errore classico — ti sei dimenticato la virgola tra le colonne:

SELECT name age id -- Errore: manca la virgola!
FROM students; 

Ma non ti preoccupare. La query SELECT serve solo a leggere i dati. Qualsiasi errore in una query del genere non può rovinare i dati nel tuo database. Ma quando arriveremo alle query che modificano i dati — lì sì che gli errori possono costare caro.

Usare * invece di colonne specifiche.

Quando usi *, tiri fuori TUTTI i dati, anche quelli che non ti servono. Questo rallenta tutto e può essere un problema con tabelle grosse. Scegli sempre solo le colonne che ti servono davvero.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION