GUÍA COMPLETA DE ALIAS EN MYSQL Y MARIADB
Un alias es un nombre alternativo que se da a una columna o a una tabla dentro de una consulta SQL. Este nombre solo existe durante la ejecución de la consulta y no modifica la estructura de la base de datos.Existen dos tipos principales de alias:
- Alias de columnas
- Alias de tablas
Alias de Columnas
Se utilizan para renombrar el encabezado de una columna en el resultado de una consulta, especialmente cuando se usan funciones, expresiones o concatenaciones.Sintaxis básica:SELECT columna AS alias_columna
FROM tabla;
Ejemplos
Con AS (recomendado)
SELECT
nombre,
apellido,
CONCAT(nombre, ' ', apellido) AS nombre_completo,
salario * 12 AS salario_anual,
YEAR(fecha_ingreso) AS anio_ingreso
FROM empleados;
Sin AS también válido
SELECT
nombre,
salario,
salario * 1.1 bono
FROM empleados;
Casos de uso comunes
- Renombrar columnas con nombres técnicos como: "fecha_creacion" → "Fecha de Creación"
- Dar nombre a cálculos y agregaciones
- Concatenar campos
- Mejorar la presentación de reportes
Alias de Tablas
Son especialmente útiles cuando se trabajan con "JOIN" o cuando se hacen referencias a la misma tabla varias veces, comocido como "self-join"..Sintaxis:
SELECT *
FROM tabla AS alias_tabla;
Ejemplo con JOIN
SELECT
e.nombre AS empleado,
d.nombre AS departamento,
j.nombre AS jefe_directo
FROM empleados AS e
INNER JOIN departamentos AS d ON e.departamento_id = d.id
LEFT JOIN empleados AS j ON e.jefe_id = j.id;
Ejemplo de Self-Join
SELECT
e1.nombre AS empleado,
e2.nombre AS supervisor
FROM empleados AS e1
INNER JOIN empleados AS e2 ON e1.supervisor_id = e2.id;
Ventajas de usar Alias
- Legibilidad: Las consultas complejas se vuelven mucho más fáciles de entender.
- Evitar ambigüedad: Obligatorio cuando hay columnas con el mismo nombre en diferentes tablas.
- Mejor mantenimiento: Cambiar el nombre real de una tabla o columna en el futuro afecta menos a las consultas.
- Claridad en reportes: Los nombres que ve el usuario final son más amigables.
Consideraciones Importantes en MySQL y MariaDB
- Comillas: Si el alias contiene espacios o caracteres especiales, debes usar comillas invertidas (`) o comillas dobles (si el modo ANSI está activado):
SELECT nombre AS `Nombre Completo` FROM empleados;
- Rendimiento: Los alias no afectan el rendimiento de la consulta. Son solo una capa de presentación.
- Subconsultas: También se pueden usar alias en subconsultas:
SELECT *
FROM (
SELECT nombre, salario
FROM empleados
WHERE salario > 50000
) AS altos_salarios;
- "ORDER BY" y "GROUP BY": Se puede referir a un alias de columna en "ORDER BY" y "HAVING", pero no en "WHERE" ni en "GROUP BY", en la mayoría de versiones.
-- Válido
SELECT nombre, salario * 12 AS anual
FROM empleados
ORDER BY anual DESC;
-- NO válido (en la mayoría de casos)
SELECT nombre, salario * 12 AS anual
FROM empleados
WHERE anual > 60000; -- Error
Mejores Prácticas
- Usar "AS" aunque sea opcional. Mejora la legibilidad del código.
- Sé consistente en la nomenclatura de alias (camelCase, snake_case, etc.).
- Usar alias significativos pero cortos como "emp" para empleados, "cli" para clientes.
- Evitar alias de una sola letra excepto en consultas muy simples o JOINs complejos.
- Documentar consultas muy complejas con alias.
SELECT *
FROM tabla AS alias_tabla;
SELECT
e.nombre AS empleado,
d.nombre AS departamento,
j.nombre AS jefe_directo
FROM empleados AS e
INNER JOIN departamentos AS d ON e.departamento_id = d.id
LEFT JOIN empleados AS j ON e.jefe_id = j.id;
SELECT
e1.nombre AS empleado,
e2.nombre AS supervisor
FROM empleados AS e1
INNER JOIN empleados AS e2 ON e1.supervisor_id = e2.id;
SELECT nombre AS `Nombre Completo` FROM empleados;
SELECT *
FROM (
SELECT nombre, salario
FROM empleados
WHERE salario > 50000
) AS altos_salarios;
-- Válido
SELECT nombre, salario * 12 AS anual
FROM empleados
ORDER BY anual DESC;
-- NO válido (en la mayoría de casos)
SELECT nombre, salario * 12 AS anual
FROM empleados
WHERE anual > 60000; -- Error