JOIN-GROUP BY

Comando Inner Join

El comando JOIN en mysql, sirve para combinar 2 o mas tablas según las designaciones de variables que queremos o necesitemos.

Unión entre varias tablas, devuelve la información que encuentra esa unión (relación)

Sintaxis:

select * from tabla1 inner join tabla2 on tabla1.id=tabla2.id inner join tabla3 on tabla2.id=tabla3.id2

CONSULTAS RELACIONALES (Entre varias tablas)

Visualizar el codigo del libro, el nombre del libro, el codigo del autor y el nombre del autor con sus respectivos libros escritos

Analisis

1. Que deseo consultar y de que tablas: 

libro.idlibro

libro.descripcion

autor.codautor

autor.nombre

2. Que tablas se ven afectadas o involucradas:

Libro

Autor

Liautedi

3. Condiciones:

Ninguna

4. Como s erelacionan las tablas:

libro.idlibro=liautedi.idlibro

liautedi.codautor=autor.codautor

5. Que comandos debe de utilizar:

Select, inner join

Sintaxis:

select libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor;

select distinct libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro inner join liautedi on libro.idlibro=liautedi.idlibro inner join autor on liautedi.codautor=autor.codautor; 

Comando left join

Se utiliza para saber que registros no tienen correspondencia en otra tabla. Verifica de una tabla izquierda a una tabla derecha, si no encuentra coincidencias se genera una fila con todos los campos ceteados a NULL

Visualizar que libros no se les a asignado un autor utilizando el left

Sintaxis:

select libro.idlibro,libro.descripcion,liautedi.idlibro from libro left join liautedi on libro.idlibro=liautedi.idlibro where liautedi.idlibro is null;

Comando right join

Opera del mismo modo que el left join, solo que la busqueda de coincidencias las realiza del modo contrario, es decir busca valores de coincidencias desde la tabla de la derecha hasta la tabla que esta a la izquierda y sucede lo mismo que en el left, sino encuentra coincidencias se genera una fila extra con todos los campos ceteados en null.

Visualizar el listado de los libros que tienen al menos un autor asignado

Sintaxis:

select libro.idlibro,libro.descripcion,liautedi.idlibro from libro right join liautedi on libro.idlibro=liautedi.idlibro;

select libro.idlibro,libro.descripcion,autor.codautor,autor.nombre from libro right join liautedi on libro.idlibro=liautedi.idlibro right join autor on liautedi.codautor=autor.codautor;

AGRUPAR INFORMACION

Comando Group by

Sintaxis:

select * from nombretabla group by nombrecampo;

Nota:

Se utiliza las funciones (max,min,sum,avg,count)

Visualizar las cantidades de visitantes por ciudad

Analisis:

1. Que deseo consultar:

La ciudad

2. Campo en el que se aplica la funcion:

montocompra

3. Campo por el cual voy a agrupar:

Ciudad

4. Comando:

select, group by, count

Sintaxis:

select nombrecampo(s), funcion(campofuncion) as nombredeseado from nombretabla group by nombrecampo;

select ciudad,count(ciudad) as 'cantidad visitantes' from visitantes group by ciudad;

Visualizar el total comprado por ciudad:

Analisis:

1. Que deseo consultar:

La ciudad

2. Campo en el que se aplica la función:

montocompra

3. Campo por el cual voy a agrupar:

Ciudad

4. Comando:

select, group by, sum

Sintaxis:

select ciudad,sum(montocompra) as 'total compra por ciudad' from visitantes group by ciudad;

Visualizar el monto de compra por sexo

Analisis:

1. Que deseo consultar:

El sexo

2. Campo en el que se aplica la funcion:

montocompra

3. Campo por el cual voy a agrupar:

sexo

4. Comando:

select, group by, sum

Sintaxis:

select sexo,sum(montocompra) as 'total compra por sexo' from visitantes group by sexo; 

Visualizar las ciudades a las que van mas de dos visitantes

Analisis: 

1. Que deseo consultar:

Ciudad

2. Campo en el que se aplica la funcion:

Ciudad

3. Campo por el cual voy a agrupar:

Ciudad

4. Comando:    Condicion canridad >2

select, group by, count, having.

Sintaxis:

select ciudad,count(ciudad) as 'cantidad de visitantes' from visitantes group by ciudad having count(ciudad)>2;

Nota:

Cuando utilizamos group by y se manejan condiciones estas no funcionan con where sino con having

Calcular el promedio de montocompra agrupados por ciudad y sexo

Analisis:

1. Que deseo consultar:

Ciudad, Sexo

2. Campo en el que se aplica la funcion:

montocompra

3. Campo por el cual voy a agrupar:

Ciudad, Sexo

4. Comando:                      Condicion: ninguna

select, group by, avg

Sintaxis:

select ciudad,sexo,avg(montocompra) as 'promedio de compra' from visitantes group by ciudad,sexo; 

Visualizar el monto compra por ciudad mayor a 5 millones

Analisis:

1. Que deseo consultar:

Ciudad

2. Campo en el que se aplica la funcion:

montocompra

3. Campo por el cual voy a agrupar:

Ciudad

4. Comando:                       Condicion: compra suma > 5000000

select, group by, sum,having.

Sintaxis:

select ciudad,sum(montocompra) as 'Mayores_a_5000000' from visitantes group by ciudad having sum(montocompra)>5000000; 

VISTAS

Se utilizan para crear tablas temporales

Comando View

Sintaxis:

Ejemplo: crear una vista con los nombres que terminan en A

create view nombre de la vista;

create view visitantesa as select * from visitantes where nombre like '%a';

Nota:

Se crea una tabla tal cual es la original, pero con la información consultada.

Inserta un nuevo visitante

insert into visitantes(nombre,ciudad,sexo,montocompra)values('Ana Maria Guerrero Guasca','cartagen','femenino',5000000);

Eliminar una vista

Sintaxis:

Drop view nombredelavista;

Drop view visitantesa;

Otros Comandos Mysql

Comando auto_increment:

Permite crear campos que se incrementan automáticamente.

Crear una tabla utilizando este comando

Ejemplo:

create table edicion(codigo int auto_increment primary key,descripcion char(30) not null);

Insertamos registros y verificamos que el campo si este auto incrementando. 

insert into edicion(descripcion) value ('primera edicion'),('segunda edicion'),('tercera edicion');

Eliminar un registro y mostrar la información y volvemos a insertar otro registro. 

delete from edicion where codigo=1;

truncate table edicion:

Borra físicamente los registros de la tabla y recupera el consecutivo

Como crear campos que no admitan valores negativos

El comando unsigned 

Sirve para crear campos que no permitan valores negativos, teniendo en cuenta la informacion o datos que se van a almacenar.

Para modificar el valor negativo

Liliana Taborda Sanchez,Desarrollo de Software, Medellin Colombia 2019
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar