Categorías: MySQL

Alias

En algunas ocasiones va a ser necesario cambiar el nombre de las columnas o de las tablas, en este caso podemos utilizar un alias.

AS
AS – alias – permite cambiar el nombre de una columna o tabla al momento de realizar consultas.

Esto nos es útil cuando al obtener los registros de una consulta el nombre de la columna no representa los datos que contiene o el nombre no es conveniente para utilizar – sobre todo si vamos a procesar los datos en algún lenguaje de programación -.

Un ejemplo es cuando utilizamos funciones de agregación.

-- Utilizamos la función SUM para 
-- obtener la sumatoria de vistas de las publicaciones.

SELECT SUM(vistas) FROM publicaciones;

-- Cambiamos el nombre de la columna por
-- Vistas totales
-- Esto nos puede servir si utilizamos MySQL en modo
-- consola o utilizamos algún editor para 
-- realizar la consulta.

SELECT SUM(vistas) AS "Vistas totales" FROM publicaciones;

-- Si utilizamos un lenguaje de programación para procesar
-- los datos prefiero utilizar notación snake_case

SELECT SUM(vistas) AS "vistas_totales" FROM publicaciones;

Otro uso puede ser cuando se selecciona contenido de dos tablas distintas – más adelante vamos a revisar distintas maneras de hacer esto, por ahora es solo un ejemplo de cómo utilizar los alias – que tienen el mismo nombre para una columna. En este caso podemos utilizar la notación nombre_tabla.nombre_columna para realizar la consulta y prevenir que mysql envíe un mensaje de que el nombre de la columna es ambiguo. Si se va a utilizar el resultado de tipo de consultas fuera del administrador de bases de datos – MySQL – por ejemplo en PHP, es conveniente diferenciar el nombre de las columnas.

-- En este caso queremos mostrar el nombre del usuario
-- y el nombre del rol que tiene asignado pero 
-- MySQL nos indica que la columna "nombre"
-- es ambigua porque las dos tablas tienen 
-- una columna que se llama nombre:

SELECT nombre, nombre  FROM roles, usuarios WHERE 
usuarios.rol_id = roles.id;

-- Column 'nombre' in field list is ambiguous

-- Para prevenir este error podemos utilizar la notación
-- nombre_tabla.nombre_columna de esta manera
-- estamos especificando a qué tabla pertenece 
-- la columna de la cual queremos mostrar los nombres
-- pero en los resultados ambas columnas tienen
-- el encabezado nombre, lo cuál no es muy útil
-- si queremos procesar el resultado en un lenguaje
-- de programación. 

SELECT usuarios.nombre , roles.nombre  FROM roles, usuarios WHERE usuarios.rol_id = roles.id;

-- Al utilizar un alias en cada columna
-- definimos que el encabezado de la columna
-- represente el valor de los datos que se están mostrando
-- además de que al utilizar nombres distintos
-- se pueden procesar por el lenguaje de programación
-- sin ningún problema.

SELECT usuarios.nombre AS 'usuario', roles.nombre AS 'rol' FROM roles, usuarios WHERE usuarios.rol_id = roles.id;

También es posible utilizar un alias para el nombre de las tablas.
Al crear un alias para las tablas – después de FROM – se tiene que utilizar el alias cuando se haga referencia a la tabla – ya sea al seleccionar las columnas en SELECT o al especificar las condiciones en WHERE -.

-- Mostrar el nombre del usuario
-- y el nombre del rol que tiene asignado.

SELECT u.nombre, r.nombre FROM usuarios AS u, roles AS r WHERE u.rol_id = r.id

-- Si queremos procesar los datos después de realizar
-- la consulta, podemos cambiar el nombre del
-- encabezado de las columnas utilizando un alias
-- en las columnas.

SELECT u.nombre AS 'usuario', r.nombre AS 'rol' FROM usuarios AS u, roles AS r  WHERE u.rol_id = r.id;

Es posible omitir el término AS al utilizar alias. De manera personal lo he visto más en alias
que hacen referencia a nombres de tablas que a nombres de columna.

-- Utilizar alias de tabla omitiendo 
-- la palabra AS

SELECT u.nombre, r.nombre 
FROM usuarios u, roles r 
WHERE u.rol_id = r.id

-- Funciona correctamente utilizando
-- alias en el nombre de las columnas.

SELECT u.nombre AS 'usuario', r.nombre AS 'rol'
FROM usuarios u, roles r 
WHERE u.rol_id = r.id

-- También es posible utilizar alias en el nombre
-- de las columnas sin utilizar el término 
-- AS

SELECT u.nombre 'usuario', r.nombre 'rol'
FROM usuarios u, roles r 
WHERE u.rol_id = r.id

Aunque los alias nos van a ser más útiles cuando realicemos consultas en más de una tabla por el momento los puedes usar para abreviar el nombre de las tablas si seleccionas columnas en particular o para visualizar cambiar el nombre de las funciones en el encabezado de los resultados.

eamexicano

Publicado por
eamexicano

Entradas recientes

Handbrake CLI

Ya que vimos como crear nuestros propios ajustes la siguiente tarea sería poder codificar nuestro(s)…

2 semanas hace

Crear ajustes personalizados en HandBrake

A veces, al codificar videos con HandBrake, utilizamos ajustes personalizados, los cuales, tenemos que volver…

2 semanas hace

Manipular registros de tabla con referencia a sí misma

En ocasiones cuando queremos manipular - borrar o editar - los registros de una tabla…

5 años hace

Organización de Proyectos

Si ya has hecho sitios o aplicaciones web es probable que tengas una manera de…

5 años hace

LAMP – Funcionamiento

En la publicación de LAMP Stack vimos los componentes de esta plataforma y las tareas…

5 años hace

Inyección SQL

Una inyección de SQL es una vulnerabilidad de las aplicaciones web en la cual el…

5 años hace

Esta web usa cookies.