— Comandos JOIN/GROUP BY —

Comando JOIN

El comando JOIN en MySQL, sirve para combinar 2 o mas tablas según la designación de variables que queremos o necesitamos. 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 TABLA3.ID2;

CONSULTAS RELACIONALES (Entre varias tablas)

Visualizar el codigo del libro, el nombre del libro,

el codigo del autor con sus respectivos libros escritos.

Analisis

1.Que se desea consultar y tablas

libro.idlibro

libro.descripcion

autor.codautor

autor.nombre

2.Que tablas se ven afectadas

Libro

Autor

liautedi

3.Condicciones

No hay

4.Como se relacionan las tablas

libro.idlibro = liautedi.idlibro

liautedi.codautor = autor.codautor

5.Que comando 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;

LEFT JOIN

El 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 extra con todos los campos ceteados a NULL.

*Visualizar que libros no se les ha asignado un autos 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;

RIGHT JOIN

El RIGHT JOIN opera del mismo modo que el left join, solo que la busqueda de coincidencias la 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 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

SELECT DISTINC

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;

TURISMO.SQL

AGRUPAR INFORMACION

Comando GROUP BY

Sintaxis

SELECT * FROM NOMBRETABLA GROUP BY NOMBRECAMPO;

NOTA: El group by normalmente utiliza las funciones

(MAX,MIN,SUM,AVG,COUNT)

Visualizar la cantitades de visitantes por ciudad

Analisis

1.Que se desea consultar

2.Campo en el que se aplica la funcion

montocompra

3.Campo por el cual va agrupar

Ciudad

4.Comando

GROUP BY

SELECT

COUNT

Sintaxis

Select nombrecampo (s), funcion (campofuncion) as

nombredeseado from nombretabla group by nomcampo;

SELECT ciudad,

count(ciudad) as 'cantidad visitantes'

FROM visitantes group by ciudad;


Visualizar el total comprado por ciudad

Analisis

1.Que se desea consultar

2.Campo en el que se aplica la funcion

montocompra

3.Campo por el cual va agrupar

Ciudad

4.Comando

GROUP BY

SELECT

SUM

SELECT ciudad,

sum(montocompra) as 'Total comprado por ciudad'

FROM visitantes group by ciudad;

Visualizar el monto de compra por sexo

Analisis

1.Que se desea consultar

Ciudad

2.Campo en el que se aplica la funcion

montocompra

3.Campo por el cual va agrupar

sexo

4.Comando

GROUP BY

SELECT

SUM

SELECT sexo,

sum(montocompra) as 'monto de compra por sexo'

FROM visitantes group by sexo;

Visualizar la cantidad de visitantes

Sintaxis

SELECT ciudad,

count(ciudad) as 'cantidad de visitantes'

FROM visitantes group by ciudad having

count(ciudad)>2;

NOTA: Cuando utilizamos gruop by y se manejan conducciones no funciona con el comando where sino con having.

Calcular el valor promedio de montocompra agrupados por ciudad y sexo

Analisis

1.Que se desea consultar

Ciudad,sexo

2.Campo en el que se aplica la funcion

montocompra

3.Campo por el cual va agrupar

sexo,ciudad

4.Comando

GROUP BY

SELECT

AVG

Sintaxis

SELECT ciudad,

sexo,

avg(montocompra) as 'promedio de montocompra agrupados por ciudad y sexo'

FROM visitantes group by ciudad,sexo;


Visualizar el monto compra por ciudad mayores a 5millones

Analisis

1.Que se desea consultar

Ciudad

2.Campo en el que se aplica la funcion

montocompra

3.Campo por el cual va agrupar

ciudad

4.Comando

GROUP BY

SELECT

count

Sintaxis

SELECT ciudad,

sum(montocompra) as 'monto compra por ciudad mayores a 5millones'

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 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 visitantes

insert into visitantes(nombre, ciudad, sexo, montocompra)

values('Ana Maria Guerrero Guasca', 'Cartajena', 'Femenino', 5000000);

Para eliminar la vista es DROP VIEW NOMBREDELAVISTA;

DROP VIEW VISITANTESA; 

OTROS COMANDOS MYSQL

Comando auto_increment;

Permite crear campos que se incrementan automaticamente.

Crear una tabla utilizando este comando.

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;

insert into edicion (descripcion) values ('primera edicion') ;

insert into edicion (descripcion) values ('cuarta edicion') ; 

truncate table edicion;

CONTINUACIÓN CLASE (COMO CREAR CAMPOS QUE NO ADMITA VALORES NEGATIVOS)

create table producto(codigo int auto_increment, nombre char (30) not null,precio float, primary key (codigo));

insert into producto (nombre,precio) value('camisa',25000),('pantalon',45000),('chaqueta',-1000000);

alter table producto modify precio float unsigned not null;

NOTA: el comando unsigned  sirve para crear campos que no permitan valores negativos, teniendo en cuenta la información o datos que se van a almacernar 

update producto set precio=1000000 where codigo=3;

UNIVERSIDAD UNIREMINGTON Medellin-Colombia
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