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.