Conocer cómo generar consultas precisas en MySQL es crucial para aprovechar al máximo la información almacenada en bases de datos relacionales. Al dominar la creación y optimización de consultas SQL, podrás extraer datos relevantes para tu negocio y tomar decisiones informadas basadas en evidencia precisa y clara.
¿Cómo identificar tablas clave para tus consultas en MySQL?
Al consultar bases de datos relacionales, la primera tarea es reconocer las tablas principales y sus relaciones. La tabla central generalmente es aquella con más conexiones con otras tablas. Por ejemplo, en una estructura donde "bills" es la tabla principal, esta se conecta directamente con "clients" y con "bill products", y ésta última a su vez con "products". Reconociendo estas conexiones se asegura una consulta fluida y lógica.
¿Cuáles son las recomendaciones al usar LEFT JOIN en consultas?
Es importante entender claramente:
El uso de alias en tablas mejora la claridad del código.
Las conexiones entre tablas deben hacerse utilizando las llaves correspondientes ("bill_id", "client_id", "product_id").
No siempre es necesario relacionar cada tabla nueva directamente con la tabla original en la cláusula FROM, pero sí es crucial conectar adecuadamente las tablas intermedias para preservar la lógica.
¿Cómo utilizar funciones agregadas y GROUP BY adecuadamente en MySQL?
Las funciones agregadas como COUNT, SUM y AVG requieren que agrupes tus resultados mediante la cláusula GROUP BY para ofrecer resultados coherentes y precisos.
Utiliza las columnas únicas o primarias como pivote para agrupar tus resultados.
Ten en cuenta que todos los campos seleccionados deben de estar claramente relacionados o depender de la columna agrupadora.
¿Cómo calcular totales y aplicar descuentos en tus consultas?
La realización de cálculos directamente desde la consulta SQL puede simplificar significativamente el manejo de reportes o la visualización de información financiera o comercial:
Para determinar la cantidad total de productos comprados, utiliza la función COUNT adecuadamente.
Las operaciones aritméticas son esenciales para aplicar descuentos y calcular precios totales.
Ejemplo de cálculo con descuento utilizando valores porcentuales:
Esta fórmula revisa cada fila para calcular el precio final, considera el descuento registrado y luego suma los resultados totales, dando un valor redondeado.
¿Cuál es la importancia de concatenar resultados en MySQL?
MySQL permite concatenar campos para generar resultados en formato claro y comprensible fácilmente legibles en reportes, lo que facilita la toma rápida de decisiones basada en información claramente integrada:
SELECT CONCAT(c.name,' tiene una cuenta ', b.status,' con ',COUNT(bp.bill_product_id),' productos y suma $',ROUND(SUM(bp.quantity * p.price *(1- bp.discount /100)),2))AS resultado
FROM bills AS b
LEFTJOIN clients AS c ON b.client_id = c.client_id
LEFTJOIN bill_products AS bp ON bp.bill_id = b.bill_id
LEFTJOIN products AS p ON p.product_id = bp.product_id
GROUPBY b.bill_id;
Este tipo de consulta mejora la comprensión inmediata y reduce la necesidad de trabajo adicional para interpretar los datos.
¿Cómo garantizar que tu base de datos sea funcional a largo plazo?
Una base de datos diseñada con pensamiento de largo plazo, normalizada correctamente y estructurada, garantiza:
Facilidad para adicionar información futura (nuevos mercados, precios diferenciados).
Mantenimiento sencillo y escalabilidad práctica.
Mayor utilidad y efectividad para diversos perfiles profesionales como desarrolladores y científicos de datos.
¿Te gustaría compartir tu experiencia personal usando consultas SQL avanzadas? No dudes en comentar, ¡tu feedback enriquece nuestra comunidad de aprendizaje!
Me gustó el curso, siento que para ser de iniciación puede llegar a abrumar en algunos puntos, pero repitiendo y siguiendo con calma los ejercicios se puede aprender bien! En mi caso lo usé como repaso y fue excelente para ese proposito.
Es mi primer acercamiento con SQL y siento que este curso estuvo muy explicado. Entendí cosas que podrían haberme abrumado.
GRAN CURSO!
La verdad muy práctico y explicativo, además que el profesor da un par de tips sobre sus 20+ años de experiencia buenísimo (el de los 4 tipos de Tablas, me ayudo a afianzar mejor algo que ya tenía pensando para un proyecto)
En general TOP TOP TOP!
De los mejores cursos que he visto durante 4 años en Platzi
Un curso que deja sin sabores, evidentemente NO es de fundamentos, ya se debe tener algunos conocimientos previos para seguir la secuencia, creo que si falta el uso de algún cliente conocido (ejemplo workbench…) para introducir a algunos estudiantes en el mundo del las bases de datos y el manejo por consola si se hubiera manejado en un curso mas intermedio, bien por los recursos, bien por el profesor que intento dar lo mejor de sí, muy regular la metodología… Todo esto debe llevar a una oportunidad de mejora!!
No aprendí realmente a manejar mysql, me falto mucho mas los ejemplos muy bien pero a mi no me funciona la terminal de la misma manera.
Después de haber estudiado el curso y de hacer un nuevo repaso, con la practica de los ejemplos que muestra el profesor, realmente se aprende y se comprenden los conceptos básicos.
Es un excelente curso, pero nos invita a esforzarnos un poco más y eso es exactamente lo que nos exige la vida moderna de hoy.
No descalifiquemos un curso solamente porque nos cuesta un poco más, ya que además, el profesor se entusiasma para que aprendamos los conceptos básicos y racionalicemos mejor.
Como buena practica puedes pedir ayuda a la AI, sobre como utilizar la terminal de comandos, en mi caso pregunte específicamente que necesitaba para hacer la conexión en mi sistema operativo, y de paso descubrí algo nuevo que no sabia.
Recuerda que un nuevo aprendizaje incluye nuevos retos a superar.
Me resultó bastante difícil este curso, pero tras volver a ver varias veces algunas clases creo que terminé de entender cómo manejar una base de datos de principio a fin. Al menos lo más básico. Gran esfuerzo, pero valió la pena. Habrá que empezar a aplicarlo para incorporarlo completamente. Muchas gracias.
Segundo curso que tomo de fundamentos de base de datos y es uno de los mejores.
Excelente curso. Cada profesor aporta una forma diferente de encarar los problemas con datos. Si creo que los videos se podrían dividir, al final agrupa Ya los conceptos densos de SQL, pero finalmente es ahí donde está la utilidad del análisis.
muy buen curso, empiricamente sabia algo de base de datos pero la explicacion tan clara y buena acomoso mis ideas y amplio mi conocimiento
Muy malo el curso
Totalmente de acuerdo, había uno muy bueno del profesor Israel Vázquez Morales, y lo quitaron por este. Super mal estructurado el contenido, eso está pasando en todos los cursos. y lo peor es que es super largo y mal estructurado.
Malo para ti!
El curso es BUENÍSIMO!
Mucho mejor que el de Israel...
Pero bueno... cada quien juzga a partir de sus capacidades y confianza
Muy buen curso, pero tengo una observación. Las preguntas del examen final están muy mal redactadas. Para dar un ejemplo:
Preguntan: dado que AGREGASTE price a la tabla test y deseas que aparezca después de name , ¿qué sentencia usarías?
Espera que la respuesta sea alter table test add column after price. Pero la misma pregunta dice dado que agregaste. En pasado y además da la opción de hacerlo con modify (para mover la columna después de la columna "name"). Hay más ejemplos. En general los exámenes son muy malos.
Sí podría abrumar muy fácilmente este curso a más de uno, se siente algo desorganizado pero no sé. Un curso diferente. El profe muy bueno.
Pienso que el profesor es excelente. Se ve que tiene amplia experiencia en SQL y pienso que el planteamiento de los proyectos esta muy bien diseñado para ir entendiendo las funciones y aplicaciones de cada comando, profundizando y complejizando cada vez más.
¡Gracias!
Uff curso muy bueno, claro que entendi por mis bases en la univerisidad, pero me encanto por que aprendi y recorde, dejo mi codigo:
SELECTCONCAT('El cliente ',c.name,'tiene la factura No.',b.bill_id,'por un valor de $',ROUND(SUM(bp.quantity* p.price*(1- bp.discount/100))),' por un total de ',count(bp.bill_product_id),'Productos adquiridos y su estado es ', b.status)AS resumen_factura
FROM bills AS b
LEFTJOIN client AS c
ON b.client_id= c.client_idLEFTJOIN bill_products as bp
ON bp.bill_id= b.bill_idLEFTJOIN product AS p
ON p.product_id= bp.product_idGROUPBY b.bill_id, b.status, c.name;
El curso pudo haberse estructurado un poco mejor, aun asi debo decir que entendi muy bien algunos temas que me parecian un poco complicados.
@@@ El recurso de tomar el examen no se encuentra disponible, me da un error @@@
Excelente curso donde el profesor toco lo basico para aprender base datos.
Ahora vamos por mas,
En la práctica diaria, el LEFT JOIN es uno de los más utilizados. Permite obtener todos los registros de la tabla de la izquierda y los registros coincidentes de la tabla de la derecha. Si no hay coincidencia, los resultados de la tabla de la derecha serán nulos. Esto es útil en situaciones donde quieres mostrar todos los elementos de una tabla principal, incluso si no tienen registros relacionados en otra tabla, como listar todos los clientes y sus pedidos, aunque algunos no hayan hecho ningún pedido.
Sinceramente me encantó este curso. Aunque lo tomé de repaso me sirvió muchísimo para aclarar lagunas y dudas que no había tenido el placer de estudiarlas.
Le dejo este pequeño regalo al profe!
En una pequeña BD ficticia...
El curso del profe israel, sigue en plataforma : https://platzi.com/cursos/fundamentos-db/, (67 clases) para mi, a pesar de no ser programador, entendi muchos conceptos, sobre base de datos, claro esta, hay que investigar mucho, (modelo entidad relacion, modelo relacional, modelo fisico, cardinalidad, normalizacion, sentencias SQL, DDL, DML,DCL, bueno en fin, el curso no esta mal, tampoco hay que ser tan descalificativos.