19
Sintaxis Tablas Usadas Consultas sencillas Funciones generales Group By Subconsultas Consultas Multitablas ........................................... INGENIERIA EN SISTEMAS COMPUTACIONALES TALLER DE BASE DE DATOS QUINTO SEMESTRE 503 - A Ejercicios SELECT

Ejercicios SELECT Parte 02

Embed Size (px)

Citation preview

Page 1: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Ejercicios SELECT

Page 2: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Sencillos

Esta Agrupación sin condicionar solo toma de cada agrupación el primero

Mysql> select * from clientes group by repventas;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 3: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Sencillos

Muestra la cantidad de pedidos hechos por cada cliente

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Mysql> select clie, count(*) from pedidos group by clie;

Page 4: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Funciones de agrupación

Muestra la suma de los importes de los pedidos de cada uno de los representante de ventas

Mysql> select REP_ATENDIO, SUM(importe) from pedidosgroup by rep_atendio;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 5: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Funciones de agrupación

De cada uno de los clientes muestre cual ha sido el importe mas bajo que ha pagado al realizar un pedido

Mysql> select clie, min(importe) from pedidos group by clie;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 6: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Doble agrupacion

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Mysql> select fechapedido, Clie, count(*) frompedidos group by fechapedido,Clie;

Mysql> select fechapedido, Clie, count(clie) frompedidos group by fechapedido,Clie;

Mysql> select fechapedido, Clie, count(numpedidos) frompedidos group by fechapedido,Clie;

Muestra la cantidad de pedidos hechos por cada cliente, por fechas

Page 7: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Doble agrupación

Suma la cantidad de artículos pedidos por fecha por cada cliente

Mysql> select fechapedido, Clie, sum(cant) from pedidos group by fechapedido,Clie;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 8: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Condicionando después la agrupacion.

Mostrar aquellos clientes que hayan hecho mas de 2 pedidos

Mysql> select clie, count(*) from pedidos group by cliehaving count(*)>2;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 9: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Group by

Agrupando. Condicionando después la agrupacion.

Mostrar aquellos representantes de ventas que tengan mas de tres clientes (use la tabla clientes)

Mysql> select repventas, count(*) from clientes group by repventas having count(*)>3;

OPCION UNO:

OPCION DOS:

¿OTRA OPCION?

Page 10: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Definicion. Subconsultas

Denicion: Una subconsulta es una sentencia selectdentro de otra sentencia select.

La subconsulta obtiene unos resultados intermedios (uno omas datos) que se emplean en la consulta principal(habitualmente en el where o en el having).

Page 11: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Definición. Subconsultas

Muchas veces las subconsultas se pueden escribir comoconsultas multitabla y viceversa.

Las subconsultas siempre deben estar escritas entreparentesis.

Las subconsultas se puede clasicar en dos tipos,atendiendo al numero de las y columnas que devuelven:Subconsultas que devuelven un unico valor.

Subconsultas que devuelven un conjunto de las (0, 1o mas las).

Page 12: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Devuelven un Solo Valor

Cuando la subconsulta devuelve un único valor, la consultaprincipal y la subconsulta pueden unirse por un signo decomparación (=, <>, <, , >, etc.).

Mysql> select clie, avg(limitecredito) from clientes;

Muestre los nombres de los clientes que estén por encima del promedio de limite de crédito

Errrorrrr!!!!

Page 13: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Devuelven un Solo Valor

Mysql> select avg(limitecredito) from clientes;

Muestre los nombres de los clientes que estén por encima del promedio de limite de crédito

Primero tenemos que saber cual es el limite de crédito promedio

Mysql> select nombre from clientes;

¿Cómo obtenemos el nombre de cada ciiente?

Page 14: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Devuelven un Solo Valor

Muestre los nombres de los clientes que estén por encima del promedio de limite de crédito

Cuales son entonces por encima del promedio del limite de credito?

Mysql> select nombre from clientes where limitecredito >(select avg(limitecredito) from clientes);

POR QUE SE DICE QUE DEVUELVE UN SOLO VALOR

Page 15: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Devuelven un Solo Valor

Muestre los nombres del representante de venta del cliente OrionCorp.

¿En qué tabla muestra que el cliente le tiene asignado un representante de venta? ¿En qué tabla esta el nombre delrepresentante de venta?

Mysql> select nombre from repventas where numempl =(select repventas from clientes where numclie=2114);

POR QUE SE DICE QUE DEVUELVE UN SOLO VALOR

Page 16: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Devuelven un Solo Valor

Muestre los nombres del clientes que mas pedidos tengan.

¿En qué tabla muestra que pedidos ha hecho el cliente? ¿Cuál es el numero maximo de pedidos hechos?¿Dónde esta el nombre del cliente?

Mysql> select nombre from clientes where numclie in (select clie from pedidos group by clie having count(*)= (SELECT count(clie) FROM pedidos GROUP BYclie order by count(clie) desc limit 1));

CUANTOS CLIE PUEDE DEVOLVER LA SUBCONSULTA DE ENMEDIO

Page 17: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Que Devuelven un Conjunto

Las subconsultas que devuelven un conjunto de valoresdevuelven un conjunto indeterminado de las (no conocidoa priori ): cero, una o muchas.

Ejemplo de USO INCORRECTO:select descripfrom articuloswhere precio = ( select precio from lineas_fac );

Existen varias formas de conectar la consulta y lasubconsulta:

1 valor in ( subconsulta )2 exists( subconsulta )3 valor operador any( subconsulta )4 valor =|>|>=|... all( subconsulta )

Page 18: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Subconsulta

Subconsultas. Que Devuelven un Conjunto

Muestre los datos de los clientes de hayan hecho mas de 2 pedidos

Mysql> select nombre from clientes where numclie in(select clie from pedidos group by clie having count(*)> 2);

Page 19: Ejercicios SELECT Parte 02

Sintaxis

Tablas Usadas

Consultas sencillas

Funciones generales

Group By

Subconsultas

Consultas Multitablas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INGENIERIA EN SISTEMAS COMPUTACIONALESTALLER DE BASE DE DATOSQUINTO SEMESTRE 503 - A

Consultas Multitablas

Agrupando. Condicionando después la agrupacion.