join group by

Comando join en mysql

Sirve para combinar dos o mas tablas según  la designación de sus variables que queramos o necesitemos. 

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


sintaxis selec* from tabla 1 inner join tabla2 on tabla1.id=tabal2.id inner join tabla3 on tabla2.id=tabla3.id2;


Visualizar el código del libro, el nombre del libro, el código del autor y el nombre del autor con sus respectivos libros escritos.

Análisis

Que se desea consultar y de que tablas 

libro.idlibro

libro.descripción

autor.codautor

autro.nombre

Que tablas se ven afectadas o involucradas

libro

autor

liautedi

Condiciones 

no hay

Como se relacionan las tablas

libro.idlibro=lideatedi.idlibro

lideatedi.codautor=codautor.autor

Que comandos se usan

selec inner join

Sintaxis

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;


LEFT JOIN

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

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

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

El RIGHT JOIN opera del mismo modo que el left join, solo que la búsqueda de coincidencias las realiza del modo contrario, es decir busca valores de coincidencias desde la tabla de la derecha hacia 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 distinct 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; 

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

Comando GROUP BY 

Sintaxis

select * from nombre tabla group by nombre del campo;

El group by se utilizan las funciones (max,min,sum,avg,count)

Visualizar las cantidad de visitantes por ciudad

Analisis 

1. que se desea consultar 

ciudad

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

montocompra

3. Campo por el cual va a agrupar

ciudad

4. Comando

group by, Select y count

Sintaxis

select nombrecampo(s), función (campofunción) as

nombredeseado from nombretabla group by nombrecampo;

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

Visualizar el total comprado por ciudad

Análisis

1. que se desea consultar

ciudad

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

montocompra

3. Campo por el cual va a agrupar

ciudad

4. Comando

group by, Select y función sum

Sintaxis

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

Visualizar el monto de compra por sexo

Análisis

1. que se desea consultar

sexo

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

montocompra

3. Campo por el cual va a agrupar

sexo

4. Comando

group by, Select y función sum

Sintaxis

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

Visualizar las ciudades  a las que van más de dos visitantes

Análisis

1. que se desea consultar

ciudad

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

ciudad

3. Campo por el cual va a agrupar

ciudad

4. Comando

condición >2

group by, Select y función 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 la opción having

Calcular el valor promedio de montocompra agrupados por ciudad y sexo.

Análisis

1. que se desea consultar

ciudad

sexo

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

montocompra

3. Campo por el cual va a agrupar

ciudad

sexo

4. Comando

group by, Select y función avg

Sintaxis

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

Visualizar el monto compra por ciudad mayores a 5 millones

Análisis

1. que se desea consultar

ciudad

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

montocompra

3. Campo por el cual va a agrupar

ciudad

4. Comando

Condición mayores a 5 millones

group by, Select y función sum y having

Sintaxis

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


VISTAS 

Se utiliza para crear tablas temporales

Comando view

View 

Sintaxis: create view nombre de la vista;

Ejemplo: crear una vista con los nombres que terminen con A

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', 'cartagena','femenino',5000000);

Eliminar una vista

Drop view nombredelavista

Eliminar la vista visitantesa

drop view visitantesa;

Otros comandos MYSQL

Comando auto incremento

Permite crear campos que se auto incrementan automáticamente

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

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

delete from edicion where codigo=1;

Truncate table edicion borra fisicamente los registro de tabla y recupera los consecutivos

COMO CREAR CAMPOS QUE NO ADMITAN VALORES NEGATIVOS

El comando unsigned sirve para crear campos que no tenga valores negativos teniendo en cuenta el tipo de dato que se desea almacenar y no permite valores nagativos.

 


© 2020 Bases de datos | Todos los derechos reservados
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