5 casos de negocio

Clase 19 de 24Curso de SQL y MySQL 2018

Resumen

¿Cómo transformar preguntas en consultas SQL?

Al manejar bases de datos, es esencial entender cómo convertir preguntas comerciales en consultas SQL funcionales. Aunque poseas toda la información disponible, la clave es transformar datos en información valiosa que lleve a acciones específicas. Así es como lograremos contactarnos con más clientes, aumentar seguidores o incluso incrementar ingresos. Vayamos paso a paso, desglosando cómo un encargado de una biblioteca podría traducir sus preguntas en consultas SQL eficientes.

¿Qué nacionalidades de escritores hay?

Comenzamos con una pregunta básica: ¿qué nacionalidades de escritores tenemos? En SQL, podríamos iniciar de forma sencilla con:

SELECT nationality FROM authors;

Esta consulta trae todas las nacionalidades de la tabla authors. Sin embargo, presentará duplicados, lo que no es óptimo si buscamos diversidad. Aquí es donde entra el comando DISTINCT, el cual se encargará de eliminar repeticiones. La consulta revisada sería:

SELECT DISTINCT nationality FROM authors;

Esto nos devolverá una lista única de nacionalidades. No olvides que siempre aparecerá un null si existen nacionalidades no especificadas. Utiliza ORDER BY nationality para ordenar los resultados alfabéticamente.

¿Cuántos escritores hay de cada nacionalidad?

Cuando nuestro enfoque cambia a cantidad, el uso de la función de agregación COUNT se vuelve imprescindible. El primer intento podría parecer así:

SELECT nationality, COUNT(author_id) FROM authors;

Pero, para que COUNT funcione correctamente en conjunto con SELECT, es necesario agrupar los resultados:

SELECT nationality, COUNT(author_id) AS count_authors FROM authors GROUP BY nationality;

También es útil ordenar de manera descendente para ver cuál nacionalidad tiene más escritores:

ORDER BY count_authors DESC;

¿Cómo excluir ciertos datos específicos?

A veces, desearás excluir datos, como nacionalidades específicas. Esto puede lograrse utilizando las cláusulas WHERE y NOT IN:

WHERE nationality IS NOT NULL AND nationality NOT IN ('RUS', 'AUT')

Esto excluirá resultados ‘null’ y aquellos relacionados con Rusia (RUS) y Austria (AUT). También puedes incluir varios países utilizando comas entre las cláusulas en NOT IN.

¿Cómo optimizar las consultas?

Para consultas más eficientes, organiza las condiciones desde las más amplias a las más específicas. Así, primero se descartarán los resultados más generales, optimizando el proceso.

SQL es más que simple código; es una herramienta que, cuando se comprende bien, puede desatar el verdadero potencial de nuestra base de datos. Las operaciones complejas son accesibles y las preguntas comerciales cotidianas pueden ser traducidas a consultas SQL con eficacia. Recuerda practicar estos conceptos para dominar aún más tu habilidad con SQL y siempre experimentar con distintas funciones para ver su potencial en un contexto real.