Gli alias nella select SQL
Nel comando SELECT del linguaggio SQL posso cambiare il nome delle colonne assegnandogli un alias tramite la clausola AS.
SELECT colonna AS nome FROM tabella
Posso anche modificare il nome della tabella
SELECT colonna FROM tabella AS nome
Dove il nome è l'alias ossia il nome da assegnare alla colonna o alla tabella.
Nota. Gli alias non modificano gli attributi della tabella originaria (input) ma soltanto le colonne della tabella risultato dell'interrogazione (output) o i nomi usati nella selezione. Pertanto, sono da considerarsi modifiche temporanee che valgono soltanto nella selezione.
La clausola AS può anche essere omessa nella selezione.
Basta lasciare uno spazio bianco tra il nome e l'alias.
Esempio
SELECT colonna1 nome1, colonna2 nome2 FROM tabella
oppure
SELECT * FROM tabella1 nome1, tabella2 nome2
Il risultato finale è lo stesso.
Un esempio pratico
Ho una tabella Studenti con i nomi degli attributi in italiano.
Per mostrare i dati della tabella con gli attributi in inglese modifico l'interrogazione con gli alias.
SELECT Nome AS Name, Cognome AS Surname, Età AS Age, Città AS City FROM Studenti
oppure, in modo equivalente, senza la clausola AS
SELECT Nome Name, Cognome Surname, Età Age, Città City FROM Studenti
Il risultato è una tabella con gli stessi dati ma i nomi delle colonne in inglese.
Nota. Nella tabella del risultato della selezione la colonna Nome è ridenominata con l'alias Name. La colonna Cognome con l'alias Surname. La colonna Età con Age e, infine, la colonna Città con City.
A cosa servono gli alias?
In un interrogazione gli alias sono utili per dare un nome diverso alle colonne della tabella risultato e comunicare meglio l'informazione a seconda della query e dell'utente target.
L'uso degli alias offre anche altri aspetti positivi
- Evitano di confondersi tra nomi di colonne simili o uguali nelle selezioni con più tabelle.
- Sono utili anche abbreviare i nomi troppo lunghi delle colonne o delle tabelle.
- Permettono di introdurre l'uso delle variabili nel linguaggio SQL.
Esempio 1
In questa tabella assegno alla tabella 1 l'alias t1 e alla tabella 2 l'alias t2.
SELECT * FROM tabella1 t1, tabella2 t2
Gli alias mi permettono anche di compiere calcoli matematici tra le colonne
Esempio 2
In questa interrogazione calcolo la differenza tra le colonne entrate e uscite della tabella
SELECT (entrate-uscite) AS profitto FROM tabella
Nella tabella risultato viene mostrata soltanto una colonna profitto che non esiste nelle tabelle di ingresso.
Esempio 3
In questa selezione calcolo il 22% del valore contenuto nella colonna prezzo.
SELECT (prezzo*22/100) AS Iva FROM tabella
Nella tabella risultato viene visualizzata una colonna "Iva" con il risultato del calcolo.
Anche in questo caso la colonna Iva non esiste nella tabella di origine. Esiste soltanto nel risultato della SELECT.
Nota. Questo mi permette di risparmiare spazio di memoria nella tabella di origine. Nella tabella di origine sono salvati soltanto i dati base (reddito, entrate, uscite) mentre nelle interrogazioni sono calcolate le informazioni derivate (es. iva, profitto) soltanto quando servono. Questa pratica è molto utile nella creazione delle viste.
E così via