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

MySql – Consultas más usadas

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.

Articulos relacionados:

Consejos para MySQL Optimizar todas las tablas de una base de datos MySQL con PHP Consejos para optimizar MySQL ymipollo.com con UTF-8 Php y Mysql Básico
Categories: mysql, query Tags: mysql, query
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

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?

Jueves, 19 de noviembre de 2009 a las 19:29 | #3
Robinson Pulgarin Torres
Miércoles, 15 de diciembre de 2010 a las 17:05 | #4

Una de las bases fundamentales de la gestion de las bases de datos son las consultas, las cuales la mayoria tienden a utilizar INNER JOIN, para logra relacionar el contenido de una tabla identico al de otra, mira este ejemplo en el cual realice una consulta con Workbench y me dio resultado en donde la relacion de las tablas partidas y documentos es id y id_link
SELECT CLAVE, COUNT(*) FROM PARTIDAS P INNER JOIN DOCUMENTOS D ON(ID) WHERE TIPO= ‘ENTRADA’ GROUP BY CLAVE LIMIT 5,10;
SELECT SUM(COSTO) FROM PARTIDAS WHERE CLAVE= 10012;
SELECT P.COSTO, P.FECHA, P.CLAVE FROM PARTIDAS P WHERE CLAVE=10012;

Robinson
Miércoles, 15 de diciembre de 2010 a las 17:08 | #5

Ojala te haya servido mi informacion de algo

Sin trackbacks aún.


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser