Indicaciones
Desarrollar los ejercicios de repaso (4) Revisin del marco terico de cada tipo (alumno busca informacin) y desarrollar los ejercicios:
1. 2. 3. 4. 5. 6. Funciones de agregacin (4) Group by (3) Having (3) Order by (3) In Between (2) Union tablas (2)
select
select [all | distinct] column1[,column2] from table1[,table2] [where conditions] [group by column-list] [having conditions] [order by column-list [asc | desc] ]; Por defecto es ALL. DISTINCT descarta registros duplicados para las columnas que se especifiquen Ejemplo:
SELECT DISTINCT edad FROM empinfo; devuelve las edades nicas de la tabla
Ejercicios de repaso
1. De la tabla pedidos, selecciona una lista de todos los items comprados por el clienteid 10449. Muestra el clienteid, item, y precio 2. Selecciona todas las columnas de la tabla pedidos para cualquiera que haya comprado una Tienda 3. Selecciona el clienteid, fecha e item de la tabla pedidos para cualquier item que empiece por la letra P 4. Selecciona items distintos de la tabla pedidos. 5. Realiza tus propias rdenes select y ejectalas
Funciones de agregacin
Devuelven informacin de una columna
MIN: valor ms pequeo de una columna MAX: valor ms grande de una columna SUM: suma de los valores numricos de una columna AVG: media de una columna COUNT: nmero total de valores de una columna COUNT(*): nmero de filas de una tabla
Ejercicios N 1
1. Selecciona el precio mximo de cualquier item de la tabla pedidos. 2. Selecciona el precio medio de los items que fueron comprados en el mes de diciembre 3. Cual es el nmero total de filas de la tabla pedidos? 4. Para todas las tiendas de la tabla pedidos, cual es el precio de la ms barata?
Ejercicios N 1
5. Escribe una consulta usando una unin para determinar qu items fueron pedidos por cada cliente de la tabla clientes. Selecciona el clienteid, nombre, apellido, fecha de pedido, item, y precio de todo lo que compr cada cliente en la tabla pedidos. 6. Repite lo anterior mostrando los resultados ordenados por provincia en orden descendente
Clusula GROUP BY
La clusula GROUP BY rene todas las filas que contienen datos en las columnas especificadas y permite ejecutar funciones de agregacin en una o ms columnas Formato ejemplo:
select column1,SUM(column2) from list-of-tables group by column-list
Ejemplo:
Agrupando registros
Select Proveedor, Count(codProd) As Productos, Sum(precio*stock) As Monto From Productos Group by Proveedor Proveedor M & H s.a. Zeta Import s.a. Diaz Hnos. s.a. S & S s.a. K & B s.a. Productos Monto 3 1 1 1 1 22205.00 7500.00 4200.00 300.00 4500.00
EJERCICIOS
EJERCICIOS
Ejercicios N 2
1. Cuntas personas hay de cada provincia en la tabla clientes? Muestra las provincias junto con el nmero de personas en cada uno. 2. De la tabla pedidos, selecciona el item, precio mximo, y precio mnimo para cada item 3. Cuntos pedidos hizo cada cliente? Usa la tabla pedidos. Selecciona el clienteid, nmero de pedidos que hicieron, y la suma de sus pedidos
Clusula HAVING
Permite especificar condiciones para las filas de cada grupo. Va despus de GROUP BY Formato:
SELECT column1, SUM(column2) FROM "list-of-tables GROUP BY "column-list" HAVING "condition"; Ejemplo:
SELECT dept, avg(salario) FROM empleados GROUP BY dept HAVING avg(salario) > 20000;
EJERCICIOS
Ejercicios N 3
1. Cuntas personas hay en cada provincia en la tabla clientes que tienen ms de una persona en la provincia? 2. De la tabla pedidos, selecciona el item, precio mximo, y precio mnimo para cada item de la tabla. Muestra slo los resultados si el precio mximo del item es mayor que 190 3. Cuntos pedidos hizo cada cliente? Usa la tabla pedidos. Selecciona el clienteid, nmero de pedidos que hicieron, y la suma de sus pedidos si compraron ms de 1 item
Clusula ORDER BY
Permite ordenar los resultados de una consulta, ordenados por las columnas que se especifique Por defecto es orden ascendente (ASC) Formato:
SELECT column1, SUM(column2) FROM "list-of-tables ORDER BY "column-list" [ASC | DESC]; Ejemplo:
SELECT empleado_id, dept, nombre, edad, salario FROM empleados WHERE dept = Ventas' ORDER BY salario; SELECT empleado_id, dept, nombre, edad, salario FROM empleados WHERE dept = 'Ventas' ORDER BY salario, edad DESC;
Ejercicios N 4
1. Selecciona el apellido, nombre y ciudad de todos los clientes de la tabla clientes. Muestra los resultados en orden ascendente basado en el apellido. 2. Lo mismo, pero en orden descendente. 3. Selecciona el item y precio para cada uno de los items de la tabla pedidos en los que el precio sea mayor que 10. Muestra los resultados en orden ascendente basado en el precio
Ejercicios de repaso (combinando condiciones) 1. Selecciona el clienteid, fecha de pedido, e item de la tabla pedidos para todos los items excepto si son Botas para nieve o Orejeras. Muestra dichas filas. 2. Selecciona el item y el precio de todos los items que empiecen por las letras S, 'P', o L'
Operador condicional IN
El operador IN se utiliza para comprobar si un valor est contenido en una lista de valores Formato:
SELECT column1, SUM(column2) FROM "list-of-tables WHERE column3 IN (list-of-values); Ejemplo: SELECT empleadoid, apellido, salario FROM empleados WHERE apellido IN ('Hernandez', Jurez', Gonzlez', 'Ruiz');
Se podra haber escrito con varios OR. Sera equivalente
Tambin se puede utilizar NOT BETWEEN para excluir valores dentro de un rango
Ejercicios N 5
1. Selecciona la fecha, item, y precio de la tabla pedidos para todas las filas que tengan un precio entre 10 y 80 2. Selecciona el nombre, ciudad, y provincia de la tabla clientes para todas las filas donde la provincia sea: Madrid, Vizcaya, Valencia, Palencia, o Zaragoza
Funciones matemticas
El estndar ANSI SQL-92 soporta los siguientes operadores:
+, -, *, /, % (mdulo)
Realmente, el operador mdulo no est en el estndar, pero tanto l como las de la tabla suelen estar incluidas en la mayora de los gestores de bases de datos Ejemplo:
JOIN vs UNION
JOIN
UNION
CONSULTA DE UNIN
Requisitos: deben de tener igual estructura las dos tablas La consulta unin sirven para ver en un nico campo los datos de igual tipo de varias tablas.
SELECT [CAMPO1], [CAMPO2] FROM [TABLA1] UNION SELECT [CAMPO1], [CAMPO2] FROM [TABLA2];
La TABLA1 y la TABLA2 deben de tener el mismo nmero de campos. El resultado es que devuelve en una misma columna el resultado de las dos tablas. Los registros duplicados se eliminan. Si no se quiere que se eliminen se escribe UNION ALL
Ejercicios N 6
1. Selecciona la fecha, item, y precio de la tabla pedidos para todas las filas que tengan un precio entre 10 y 80 y unirlo con un consulta idem que las fechas sean del 3 trimestre. 2. Selecciona el nombre, ciudad, y provincia de la tabla clientes para todas las filas donde la provincia sea: Madrid, Valencia y Sevilla; y unirlo con una consulta idem que la ciudad sea de Bilbao y Oviedo.