Volver a la lista de artículos Artículos
Lectura de 7 minutos

Cómo utilizar los alias en las consultas SQL

Un alias SQL es útil para simplificar tus consultas y hacer que la consulta y su resultado sean más legibles. Este artículo explica por qué y cómo se pueden utilizar los alias en las consultas SQL.

Puedes renombrar temporalmente una tabla o una columna dándole otro nombre. Esto se conoce como un alias SQL. Es un cambio temporal que no afecta al nombre real de la tabla en la base de datos. Un nombre de tabla temporal también puede llamarse nombre de correlación.

Los alias son una característica de SQL que está soportada por la mayoría, si no todos, los sistemas de gestión de bases de datos relacionales. Si usted es muy nuevo en SQL, considere tomar nuestro curso SQL para principiantes , que también cubre el tema de los alias.

¿Por qué usar un alias en SQL?

Aquí hay varias razones por las que podría considerar el uso de un alias en SQL:

  • Los nombres complejos de columnas y tablas pueden simplificarse o recibir un nombre más adecuado. Esto hace que la consulta SQL sea más clara y fácil de entender.
  • Los alias son útiles cuando trabajamos con operaciones de JOIN o funciones agregadas como COUNT() y SUM().
  • Un alias SQL también es útil cuando se utiliza una autoconexión.
  • Cuando se trabaja con varias tablas, es una buena práctica anteponer un alias a todos los nombres de las columnas para poder ver fácilmente qué columna pertenece a qué tabla.

Por cierto, los alias son sólo uno de los términos que los usuarios de SQL deben conocer. Otros términos importantes de SQL se detallan en este artículo, Términos de SQL que los principiantes deben conocer.

Ahora, echemos un vistazo más de cerca al uso de los alias, empezando por las columnas.

Cambio de nombre de columnas mediante alias

Un alias puede ser usado para renombrar las columnas en su consulta SQL. La sintaxis es la siguiente:

SELECT 
  column_1 AS alias_1, 
  column_2 AS alias_2, 
  …
FROM table_name;

Vamos a aplicar esto a un ejemplo práctico. Utilizaremos la siguiente tabla, que contiene información básica sobre nuestro customers:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51
4William Stewart62

Primero, usaremos una consulta que no tiene alias para los nombres de las columnas. Imaginemos que queremos ver qué clientes tienen menos de 60 años. Podríamos escribir la siguiente consulta:

SELECT
  customer_id,
  customer_name, 
  age 
FROM customers 
WHERE age < 60

La ejecución de esta consulta devolverá este conjunto de resultados:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Ahora introduzcamos nuestros alias de columna. La consulta siguiente contiene ahora un alias para dos columnas:

SELECT
  customer_id AS id,
  customer_name AS name, 
  age 
FROM customers 
WHERE age < 60
idnameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Compárelo con el resultado de nuestro ejemplo anterior. Preste especial atención a los nombres de las columnas y notará el impacto de nuestros alias. La columna customer_id aparece ahora como id. La columna customer_name aparece como nombre. La columna edad no cambia. Este es el resultado deseado.

Tenga en cuenta que la palabra clave AS es totalmente opcional cuando se utilizan alias. Por ejemplo, estas dos consultas SQL realizan exactamente la misma función:

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

Si el alias que utiliza contiene espacios, debe poner comillas alrededor del alias. Por ejemplo:

SELECT customer_name AS 'Customer Name'
FROM customers

Con esto concluye el uso de un alias SQL para renombrar columnas. A continuación, el uso de un alias para renombrar tablas.

Cómo cambiar el nombre de las tablas con los alias de SQL

Un alias puede ser usado para renombrar las tablas que son usadas en su consulta SQL. La sintaxis de los alias de tablas es:

SELECT 
  column_1, 
  column_2, 
  …
FROM table_name AS alias_name;

Apliquemos esta sintaxis a un ejemplo. Usaremos la misma tabla

clientes

SELECT 
  customer_name, 
  age 
FROM customers AS c 
WHERE c.age < 60

Al ejecutar esta consulta se obtienen los siguientes datos:

customer_nameage
Daniel Case23
Josh Beverly47
Bruce Roman51

Si utiliza un nombre de tabla antes de un nombre de columna en la cláusula WHERE, no puede utilizar el nombre de tabla original; debe utilizar el alias de tabla. Además, cuando quiera especificar la tabla en la lista SELECT, tendrá que utilizar el alias (por ejemplo, c.customer_name). De nuevo, la palabra clave AS es totalmente opcional. La consulta funcionará igual sin ella.

Uso de un alias con una autounión

Una autounión permite unir una tabla a sí misma. Esto es útil cuando se consultan datos jerárquicos o se comparan filas dentro de la misma tabla. Esencialmente, usted trata la tabla como dos (o más) tablas separadas asignando alias. Si no está familiarizado con las autouniones, consulte este artículo con siete ejemplos de tablas autounidas en SQL.

Cuando se autoconjunta una tabla, se puede utilizar un LEFT JOIN o un INNER JOIN. Cuando se utiliza una autoconjunción, es importante utilizar un alias SQL lógico para cada tabla. (Los alias también son útiles para las subconsultas. Un ejemplo de esto se muestra en este artículo que explica completamente las subconsultas).

Veamos cómo podemos escribir una consulta que JOIN una tabla a sí misma. Para nuestro ejemplo, utilizaremos la tabla employeeque muestra todos nuestros empleados, los ID de sus departamentos y los ID de sus gerentes.

idemployee_namedepartment_idmanager_id
1John Walker4NULL
2Bob Pendergast11
3Penelope Cruz21
4Lucy Summers51
5Tim Saunter31
6Mary Smith23

Digamos que queremos un conjunto de resultados que sólo muestre a un empleado y a su gerente. ¿Cómo podemos lograrlo? Esto puede hacerse fácilmente mediante el uso inteligente de alias en combinación con una autoconexión. Primero intentaremos utilizar un LEFT JOIN. Observe el siguiente fragmento de código:

SELECT 
  e.employee_name AS 'Employee',
  m.employee_name AS 'Manager'
FROM employee e
LEFT JOIN employee m
  ON m.id = e.manager_id

Al unir las tablas, nos aseguramos de que el valor de la columna id de la tabla de gerentes (employee m) es igual al valor de la columna manager_id de la tabla de empleados (employee e). Al utilizar LEFT JOIN en lugar de JOIN, veremos a todos los empleados, incluso a los que no tienen gerente.

Tenga cuidado con el error de la columna ambigua; puede ocurrir fácilmente si no tiene cuidado al escribir una consulta auto-unida. Para evitar este error, debe especificar explícitamente la tabla a la que pertenece la columna (employee que ha nombrado e o employee usted nombró m). En este ejemplo, la primera columna es de la tabla e (así e.employee_name) y la segunda columna es de la tabla m (así m.employee_name).

Al ejecutar la consulta anterior se obtiene el siguiente conjunto de resultados:

EmployeeManager
John WalkerNULL
Bob PendergastJohn Walker
Penelope CruzJohn Walker
Lucy SummersJohn Walker
Tim SaunterJohn Walker
Mary SmithPenelope Cruz

Este es nuestro resultado deseado. Se puede ver claramente cada empleado y su gerente. La mayoría de los empleados dependen de John Walker. Sin embargo, puede ver que el gerente de Mary Smith es Penélope Cruz. Observe el valor NULL bajo la columna Manager para John Walker. Esto se debe a que John Walker no tiene gerente; él es el jefe. Hemos podido incluirlo en nuestros resultados porque hemos utilizado LEFT JOIN.

Modifiquemos ligeramente la consulta y utilicemos 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

La única diferencia importante es la ausencia de John Walker en la columna Employee. Esto se debe a que el valor de manager_id para él era NULL, y INNER JOIN sólo devuelve columnas coincidentes, no incluyéndose los valores de NULL.

Ahora puede realizar autouniones, que pueden aplicarse a muchos casos de uso diferentes. Si sientes que necesitas ver más ejemplos de auto-uniones para entender completamente el tema, revisa esta publicación del blog sobre cómo unir la misma tabla dos veces.

Escriba mejores consultas SQL utilizando alias

En este artículo, hemos demostrado el valor de los alias de SQL. Le ayudan a mostrar datos más claros y tienen la ventaja añadida de ocultar nombres de tablas o columnas potencialmente sensibles. Si le ha gustado este artículo y quiere seguir aprendiendo sobre SQL, considere nuestra pista de aprendizaje Principios básicos de SQL . Le enseñará sentencias SQL básicas como WHERE, GROUP BY, ORDER BY, y HAVING. También aprenderá a JOIN tablas y a añadir, modificar o eliminar datos de una base de datos.