Selecciona el Idioma

jueves, 6 de junio de 2013

Consultas SQL

Hay diferentes tipos de consultas:
  • Consultas simples
  • Consultas multitabla
  • Subconsultas
  • Consultas de resumen

Las consultas simples, son consultas que se realizan sobre una única tabla. Mientras que las consultas multitabla se realizan sobre varias tablas.


consultes de resum:
1.¿cuál es el importe total de los pedidos realizados por el cliente Jaime Llorens? SELECT sum(Pedidos.importe) AS total FROM Pedidos WHERE [Pedidos.clie]=2103;
2. Cuántos pedidos hay de más de 50.000 €? SELECT Count(Pedidos.importe) AS importes_superiores FROM Pedidos WHERE importe > 50000;
3. Hallar el precio medio de los productos del fabricante QSA: SELECT Avg(productos.precio) AS media_precio FROM productos WHERE [productos.idfab] = [Fabricante
consultes de subconsultes:
1. Listar los nombres de los clientes que tienen asignado el representante Vicente Palanca(suponiendo que no pueden haber representantes con el mismo nombre) SELECT nombre FROM clientes WHERE repclie = (SELECT numemp FROM empleados WHERE nombre = 'Vicente Palanca' );
2. Listar los vendedores que no trabajan en oficinas dirigidas por el empleado 103. SELECT numemp, nombre, oficina FROM empleados WHERE NOT EXISTS ( SELECT * FROM oficinas WHERE empleados.oficina = oficinas.oficina AND dir = 103);
3. Listar las oficinas en donde haya un vendedor cuyas ventas representen más del 70% del objetivo de su oficina. SELECT * FROM oficinas WHERE EXISTS ( SELECT * FROM empleados WHERE ventas > objetivo * 0.70);




FUNCIONES DE AGREGACIÓN
Existen varias funciones que podemos utilizar en consultas para obtener diferentes resultados :
AVG/ AVERAGE • AVG([DISTINCT] expr)
Retorna el valor medio de expr. La opción DISTINCT puede usarse desde MySQL 5.0.3 para retornar la media de los valores distintos de expr. mysql> SELECT student_name, AVG(test_score) -> FROM student -> GROUP BY student_name;
COUNT
Retorna el contador del número de valores no NULL en los registros recibidos por un comando SELECT. mysql> SELECT student.student_name,COUNT(*) -> FROM student,course -> WHERE student.student_id=course.student_id -> GROUP BY student_name; ejemplo: mysql> SELECT COUNT(*) FROM student;
MIN,MAX
MIN([DISTINCT] expr), MAX([DISTINCT] expr) Retornas los valores máximos y mínimos de expr. mysql> SELECT student_name, MIN(test_score), MAX(test_score) -> FROM student10 de 10 -> GROUP BY student_name;
SUM
Retorna la suma de expr. Suponga que una tabla llamada sales tiene las columnas year, country, product, y profit para guardar las ventas productivas: CREATE TABLE sales ( year INT NOT NULL, country VARCHAR(20) NOT NULL, product VARCHAR(32) NOT NULL, profit INT ); Los contenidos de la tabla pueden resumirse por año con un simple GROUP BY como este: mysql> SELECT year, SUM(profit) FROM sales GROUP BY year;



No hay comentarios:

Publicar un comentario