Inicio > mysql, query > MySql – Consultas más usadas

MySql – Consultas más usadas

Martes, 24 de junio de 2008 Juan Jorquera Dejar un comentario Ir a comentarios

Artículo Original de elwebmaster.com.

Veremos cómo evitar hacer cuentas o cálculos complejos y cómo aplicar “count“, los tipos de consultas “max” y “min“, “sum” y “limit“.

Así que manos a la obra y ya saben que cualquier duda que vaya surgiendo pueden dejármela en los comentarios que trataré de responderlos a medida que van llegando.

Count

El count nos va a dar el número de veces que se repite un valor en la db, es decir el número de registros almacenados que correspondan con nuestra consulta. Por ejemplo, en nuestra tabla de noticias, si queremos saber cuántas noticias hay publicadas entonces la consulta que hacemos es:

SELECT COUNT(*) FROM noticias WHERE estado = 'publicado';

Ahora que pasa si queremos agregar algún otro campo en la consulta, por ejemplo el número de noticias publicadas por cada autor:

SELECT autor, count(*) FROM noticias GROUP BY autor;

Fíjense que agregamos a la consulta GROUP BY que nos permite agrupar por el valor que queremos, por ejemplo, la consulta anterior nos traería como resultados posibles:

Justi – 3

Juan Manuel – 8

Wilkilen – 1

Max y Min

Otro tipo de consulta muy común es traer el valor máximo o mínimo de un listado de valores. Supongamos que tenemos una tabla de productos con sus respectivos precios, si queremos traer el precio máximo o mínimo lo hacemos de la siguiente manera:

SELECT MAX(precio) FROM productos;

SELECT MIN(precio) FROM productos;

Y si queremos saber, por ejemplo, cuál es el precio promedio del producto con id 15 podemos hacer:

SELECT AVG(precio) FROM productos WHERE idProducto = 15;

SUM

Por último tenemos la suma. Por ejemplo, si tenemos un carrito de compras y seleccionamos 5 productos y queremos saber cuánto es el total a pagar por el usuario con id 3 deberíamos hacer:

SELECT sum(precio) FROM carrito WHERE idUsuario = 3;

LIMIT

Algo que es muy común también es limitar la cantidad de registros que queremos traer de la base de datos, por lo general algunas tablas pueden llegar a tener miles de registros y traer a todos haría demasiado uso de servidor y demoraría demasiado para lo que realmente necesita el script, es por ello que es muy comun limitar las consultas a la cantidad de resultados que necesitamos (si es que realmente conocemos este dato).

Por ejemplo si hacemos una consulta con un count(*) porque queremos saber el total de registros de una tabla, al final le colocaremos LIMIT 1.

SELECT count(*) FROM productos LIMIT 1;

Otra forma de usar el limit es pasándole dos argumentos en lugar de uno, por ejemplo, si ponemos:

SELECT * FROM productos LIMIT 5,10;

El primer valor que ponemos es desde qué registro queremos empezar a traer (el primero es 0) y el segundo cuántos valores, por lo que la consulta anterior va a traer desde el producto con id 6 al 15.

Es muy común utilizar el limit con dos argumentos cuando se desea hacer un paginado.

Comparte !
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • BlinkList
  • email
  • laaik.it
  • Live
  • Meneame
  • MisterWong
  • MyShare
  • Pownce
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Blogosphere News
  • De.lirio.us
  • Technorati

Unique visitors to post: 745

Categories: mysql, query Tags: ,
  1. Jorge
    Lunes, 6 de abril de 2009 a las 11:34 | #1

    SELECT autor, count(*) FROM noticias GROUP BY autor;

    La query anterior se podria aplicar con un inner join, como seria.

    Gracias

  2. Viernes, 4 de septiembre de 2009 a las 05:12 | #2

    ¿Se podria configurar una BD en MySQL replicada en diferentes servidores?

    Si es posible, ¿hay algun manual?

  3. Jueves, 19 de noviembre de 2009 a las 19:29 | #3
  1. Sin trackbacks aún.