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;
La palabra clave "AS" es opcional en MySQL y MariaDB, pero se recomienda usarla por claridad.

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.