Listado completo de tutoriales
38 - Alias |
Un "alias" se usa como nombre de un campo o de una expresión o para referenciar una tabla cuando se utilizan más de una tabla (tema que veremos más adelante).
Cuando usamos una función de agrupamiento, por ejemplo:
select count(*) from libros where autor like '%Borges%';
la columna en la salida tiene como encabezado "count(*)", para que el resultado sea más claro podemos utilizar un alias:
select count(*) as librosdeborges from libros where autor like '%Borges%';
La columna de la salida ahora tiene como encabezado el alias, lo que hace más comprensible el resultado.
Un alias puede tener hasta 255 caracteres, acepta todos los caracteres. La palabra clave "as" es opcional en algunos casos, pero es conveniente usarla. Si el alias consta de una sola cadena las comillas no son necesarias, pero si contiene más de una palabra, es necesario colocarla entre comillas.
Se pueden utilizar alias en las clásulas "group by", "order by", "having" (siempre y cuando el alias no tenga espacios en blanco). Por ejemplo:
select editorial as edit from libros group by edit;
select editorial, count(*) as cantidad from libros group by editorial order by cantidad;
select editorial, count(*) as cantidad from libros group by editorial having cantidad>2;
No está permitido utilizar alias de campos en las cláusulas "where".
Los alias serán de suma importancia cuando rescate datos desde el lenguaje PHP
Ingresemos al programa "Workbench" y ejecutemos el siguiente bloque de instrucciones SQL:
drop table if exists libros; create table libros( codigo int unsigned auto_increment, titulo varchar(50) not null, autor varchar(30), editorial varchar(15), precio decimal(5,2), primary key (codigo) ); insert into libros (titulo,autor,editorial,precio) values('El aleph','Borges','Planeta',15); insert into libros (titulo,autor,editorial,precio) values('Martin Fierro','Jose Hernandez','Emece',22.20); insert into libros (titulo,autor,editorial,precio) values('Antologia poetica','Borges','Planeta',40); insert into libros (titulo,autor,editorial,precio) values('Aprenda PHP','Mario Molina','Emece',18.20); insert into libros (titulo,autor,editorial,precio) values('Cervantes y el quijote','Borges','Paidos',36.40); insert into libros (titulo,autor,editorial,precio) values('Manual de PHP', 'J.C. Paez', 'Paidos',30.80); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la piedra filosofal','J.K. Rowling','Paidos',45.00); insert into libros (titulo,autor,editorial,precio) values('Harry Potter y la camara secreta','J.K. Rowling','Paidos',46.00); insert into libros (titulo,autor,editorial,precio) values('Alicia en el pais de las maravillas','Lewis Carroll','Paidos',null); select count(*) as 'Libros de Borges' from libros where autor like '%Borges%'; select editorial as edit from libros group by edit; select editorial, count(*) as cantidad from libros group by editorial order by cantidad; select editorial, count(*) as cantidad from libros group by editorial having cantidad>2;
Genera una salida similar a esta: