21st Jul 2022 Tempo di lettura: 7 minuti Come utilizzare gli alias nelle query SQL Andrew Bone sql imparare sql Indice Perché usare un alias in SQL? Rinominare le colonne con gli alias Rinominare le tabelle con gli alias SQL Uso di un alias con un self-join Scrivere meglio le query SQL usando gli alias Un alias SQL è utile per semplificare le query e rendere più leggibile la query e il suo risultato. Questo articolo spiega perché e come utilizzare gli alias nelle query SQL. È possibile rinominare temporaneamente una tabella o una colonna assegnandole un altro nome. Si tratta di un alias SQL. Si tratta di una modifica temporanea che non influisce sul nome effettivo della tabella nel database. Il nome temporaneo di una tabella può anche essere chiamato nome di correlazione. Gli alias sono una funzione di SQL supportata dalla maggior parte, se non da tutti, i sistemi di gestione dei database relazionali. Se siete alle prime armi con SQL, prendete in considerazione il nostro corso SQL Basics , che tratta anche l'argomento degli alias. Perché usare un alias in SQL? Ci sono diversi motivi per cui si potrebbe prendere in considerazione l'uso di un alias in SQL: I nomi complessi delle colonne e delle tabelle possono essere semplificati o ricevere un nome più adatto. Questo rende la query SQL più chiara e comprensibile. Gli alias sono utili quando si lavora con le operazioni JOIN o con funzioni aggregate come COUNT() e SUM(). Un alias SQL è utile anche quando si utilizza un self-join. Quando si lavora con più tabelle, è buona norma anteporre a tutti i nomi delle colonne un alias, in modo da poter vedere facilmente quale colonna appartiene a quale tabella. Gli alias sono solo uno dei termini che gli utenti di SQL dovrebbero conoscere. Altri termini SQL importanti sono descritti in dettaglio in questo articolo, Termini SQL che i principianti dovrebbero conoscere. Vediamo ora nel dettaglio l'uso degli alias, a partire dalle colonne. Rinominare le colonne con gli alias Un alias può essere utilizzato per rinominare le colonne nella query SQL. La sintassi è la seguente: SELECT column_1 AS alias_1, column_2 AS alias_2, … FROM table_name; Applichiamo tutto questo a un esempio pratico. Utilizzeremo la seguente tabella, che contiene le informazioni di base del nostro database customers: customer_idcustomer_nameage 1Daniel Case23 2Josh Beverly47 3Bruce Roman51 4William Stewart62 Per prima cosa, useremo una query che non ha alias per i nomi delle colonne. Immaginiamo di voler vedere quali clienti hanno meno di 60 anni. Potremmo scrivere la seguente query: SELECT customer_id, customer_name, age FROM customers WHERE age < 60 L'esecuzione di questa query restituirà questo insieme di risultati: customer_idcustomer_nameage 1Daniel Case23 2Josh Beverly47 3Bruce Roman51 Ora introduciamo gli alias delle colonne. La query seguente contiene ora un alias per due colonne: SELECT customer_id AS id, customer_name AS name, age FROM customers WHERE age < 60 idnameage 1Daniel Case23 2Josh Beverly47 3Bruce Roman51 Confrontatela con il risultato dell'esempio precedente. Prestate particolare attenzione ai nomi delle colonne e noterete l'impatto dei nostri alias. La colonna customer_id appare ora come id. La colonna customer_name viene visualizzata come nome. La colonna età rimane invariata. Questo è il risultato desiderato! Si noti che la parola chiave AS è del tutto facoltativa quando si utilizzano gli alias. Ad esempio, queste due query SQL svolgono la stessa funzione: SELECT customer_id AS id, customer_name AS name, age FROM customers WHERE age < 60 SELECT customer_id id, customer_name name, age FROM customers WHERE age < 60 Se l'alias utilizzato contiene spazi, è necessario mettere le virgolette intorno all'alias. Ad esempio: SELECT customer_name AS 'Customer Name' FROM customers Questo conclude l'uso di un alias SQL per rinominare le colonne. Il prossimo passo sarà l'utilizzo di un alias per rinominare le tabelle! Rinominare le tabelle con gli alias SQL Un alias può essere utilizzato per rinominare le tabelle utilizzate nella query SQL. La sintassi degli alias di tabella è la seguente: SELECT column_1, column_2, … FROM table_name AS alias_name; Applichiamo questa sintassi a un esempio. Utilizzeremo la stessa tabella: clienti SELECT customer_name, age FROM customers AS c WHERE c.age < 60 L'esecuzione di questa query restituisce i seguenti dati: customer_nameage Daniel Case23 Josh Beverly47 Bruce Roman51 Se si usa il nome di una tabella prima del nome di una colonna nella clausola WHERE, non si può usare il nome originale della tabella, ma l'alias della tabella. Inoltre, quando si desidera specificare la tabella nell'elenco SELECT, è necessario utilizzare l'alias (ad esempio, c.customer_name). Ancora una volta, la parola chiave AS è del tutto facoltativa. La query funzionerà allo stesso modo anche senza di essa. Uso di un alias con un self-join Una self-join consente di unire una tabella a se stessa. È utile quando si interrogano dati gerarchici o si confrontano righe all'interno della stessa tabella. In sostanza, si tratta la tabella come due (o più) tabelle separate assegnando degli alias. Se non avete familiarità con le self-join, consultate questo articolo con sette esempi di tabelle self-join in SQL. Quando si fa un'autogiunzione di una tabella, si può usare un LEFT JOIN o un INNER JOIN. Quando si usa un'autogiunzione, è importante usare un alias logico SQL per ogni tabella. (Gli alias sono utili anche per le subquery. Un esempio è riportato in questo articolo che spiega in modo esauriente le subquery). Vediamo come scrivere una query che JOIN una tabella a se stessa. Per il nostro esempio, utilizzeremo la tabella employeeche mostra tutti i nostri dipendenti, gli ID dei loro reparti e gli ID dei loro manager. idemployee_namedepartment_idmanager_id 1John Walker4NULL 2Bob Pendergast11 3Penelope Cruz21 4Lucy Summers51 5Tim Saunter31 6Mary Smith23 Supponiamo di voler ottenere un set di risultati che mostri solo un dipendente e il suo manager. Come possiamo ottenere questo risultato? È possibile farlo facilmente grazie all'uso intelligente degli alias in combinazione con un self-join. Per prima cosa proveremo a usare un alias LEFT JOIN. Guardate lo snippet di codice qui sotto: SELECT e.employee_name AS 'Employee', m.employee_name AS 'Manager' FROM employee e LEFT JOIN employee m ON m.id = e.manager_id Quando si uniscono le tabelle, ci si assicura che il valore della colonna id della tabella dei manager (employee m) sia uguale al valore della colonna manager_id della tabella dei dipendenti (employee e). Utilizzando LEFT JOIN invece di JOIN, vedremo tutti i dipendenti, anche quelli che non hanno un manager. Attenzione all'errore di colonna ambigua, che può verificarsi facilmente se non si fa attenzione quando si scrive una query self-join. Per evitare questo errore, è necessario specificare esplicitamente la tabella a cui appartiene la colonna (employee si è dato un nome e oppure employee hai nominato m). In questo esempio, la prima colonna proviene dalla tabella e (quindi e.employee_name) e la seconda colonna proviene dalla tabella m (quindi m.employee_name). L'esecuzione della query precedente produce il seguente insieme di risultati: EmployeeManager John WalkerNULL Bob PendergastJohn Walker Penelope CruzJohn Walker Lucy SummersJohn Walker Tim SaunterJohn Walker Mary SmithPenelope Cruz Ecco il risultato desiderato! È possibile vedere chiaramente ogni dipendente e il suo manager. La maggior parte dei dipendenti fa capo a John Walker. Tuttavia, si può notare che il manager di Mary Smith è Penelope Cruz. Si noti il valore NULL sotto la colonna Manager per John Walker. Questo perché John Walker non ha un manager; è il capo. Siamo riusciti a includerlo nei risultati perché abbiamo usato LEFT JOIN. Modifichiamo leggermente la query e utilizziamo un valore INNER JOIN: SELECT e.employee_name AS 'Employee', m.employee_name AS 'Manager' FROM employee e INNER JOIN employee m ON m.id = e.manager_id EmployeeManager Bob PendergastJohn Walker Penelope CruzJohn Walker Lucy SummersJohn Walker Tim SaunterJohn Walker Mary SmithPenelope Cruz L'unica differenza sostanziale è l'assenza di John Walker dalla colonna Employee. Questo perché il valore manager_id per lui era NULL, e INNER JOIN restituisce solo colonne corrispondenti - i valori NULL non sono inclusi. Ora è possibile eseguire auto-giunzioni, che possono essere applicate a molti casi d'uso diversi. Se avete bisogno di vedere altri esempi di self-join per comprendere appieno l'argomento, date un'occhiata a questo post su come unire due volte la stessa tabella! Scrivere meglio le query SQL usando gli alias In questo articolo abbiamo dimostrato il valore degli alias SQL. Questi aiutano a visualizzare dati più chiari e hanno il vantaggio di nascondere nomi di tabelle o colonne potenzialmente sensibili. Se vi è piaciuto questo articolo e volete continuare a imparare l'SQL, prendete in considerazione la nostra traccia di apprendimento SQL Fundamentals . Vi insegnerà le istruzioni SQL di base come WHERE, GROUP BY, ORDER BY e HAVING. Imparerete anche come JOIN tabelle e come aggiungere, modificare o rimuovere dati da un database. Tags: sql imparare sql