Alejandro González Reyes
Sumado a la clase, propongo lo siguiente LIMIT: La cantidad de registros que quiero
JUAN SEBASTIAN RODRIGUEZ JIMENEZ
Totalmente de acuerdo
Edgar Stephen Tellez Garay
Tu lo has dicho
De pregunta a Query
Alejandro González Reyes
Sumado a la clase, propongo lo siguiente LIMIT: La cantidad de registros que quiero
JUAN SEBASTIAN RODRIGUEZ JIMENEZ
Totalmente de acuerdo
Edgar Stephen Tellez Garay
Tu lo has dicho
Abril Darynka Tapia Sosa
Quiero obtener todos los post creados por edgar@com
SELECT u.nickname, p.titulo FROM usuarios u inner join posts p ON u.id=p.usuario_id where u.email="edgar@com" ORDER BY p.fecha_publicacion;
Ingrid Natalia Rodriguez Ovalle
excelente ejemplo!
Lady Laura Herrera
gracias por el ejemplo
John Fredy Ramirez Bedoya
Muy buena información para tener en cuenta al momento de realizar nuestros quieries. Acá está la base de todo. ' Igualmente me gustaría agregar lo siguiente: '
DARWIN JUAN CARLOS CATUNTA GARCIA
Genial, gracias por el dato :)
Christian Rangel
Voy a guardar tu aporte a mis anotaciones, gracias!
Juan José Calderón
Lo que dijo el profe con algo mas si les sirve :D
Felix Michael Hernandez Flery
Thanks!
Juan José Calderón
You're Welcome :D
Javier Velázquez
Esta clase debió llamarse: "inglés básico para SQL", jeje
Valentina Arenas Lozano
jajjajajaja buena esa
Omar Rodríguez Aldama
XD
Maslov Viloria
Una recomendación por experiencia con volúmenes transaccionales altos; evitar en lo posible usar un ORDER BY dentro de la consulta en el motor de Base de Datos y dejarlo del lado del cliente o de la aplicación, ésta es una de las operaciones que más consume recursos en una consulta.
Es muy importante que en todos los cursos de "Fundamentos" se discuta y se haga regla de oro "Las buenas prácticas".
Recomiendo a cada compañero de clase, buscar siempre las buenas prácticas en cada tema que vayan cursando.
Jeyson Henao
Hola Maslov,
Este tema de buenas prácticas y optimización me gusta mucho. Apenas es mi primer acercamiento con SQL y RDBMS, pero creo que una parte importante si es optimizar y hacerlo bien.
¿Alguna documentación que pudieras recomendar respecto a buenas prácticas en varias temas de SQL?
Gracias.
Julián Cárdenas
Vea pues!
Victor Enrique Lino Hernández
Edison Manrique
Excelente aporte, ya lo puse en práctica. ¡Que crack! Aún así, sin darme cuenta lo hice diferente a ti y también me devolvió los resultados esperados. Básicamente lo que hice fue apuntar el FROM hacia la tabla pivote, los INNER JOIN los hice de Tabla1 a tabla pivote y Tabla2 a tabla pivote. Me parece que queda más legible así, que opinas?
SELECT camera_products.camera_id, camera.brand, camera.model, camera_products.product_id, products.brand, products.model FROM camera_products INNER JOIN products ON camera_products.product_id = products.product_id INNER JOIN camera ON camera_products.camera_id = camera.camera_id;
Edison Manrique
Francisco Javier Suarez Verdugo
Estupenda clase, para resumir, debemos estructurar las preguntas que queremos hacer a la base de datos en 6 partes que dependerás de cada uno de los segmentos de una consulta, es decir, fragmentamos la pregunta inicial en otras 6 preguntas. Acá comparto una estructura similar que estaba realizando en el curso para las partes principales de las consultas:
Gabriel Martínez
Tabla para transformar una pregunta en un query.
| Pregunta | Query |
|---|---|
| ¿Qué queremos mostrar? | SELECT |
| ¿De donde los vamos a sacar? | FROM |
| ¿Qué filtros voy a usar? | WHERE |
| ¿Cómo lo necesito agrupar? | GROUP BY |
| ¿Necesito filtrar datos agregados? | HAVING |
Juan Esteban Bolívar Ferrer
Muy útil compañero!
Paul Cortes
Excelente explicación del Having: cuando se necesita filtrar datos de queries ya agrupados
Gerardo Alberto Soto Alvarez del Castillo
Así es, la sentencia HAVING ayuda a limitar o reducir el numero de registros que retorna la sentencia GROUP BY
Miguel Angel Herrera Cruz
hola es pregunta?
Carlos Nassif Trejo Garcia
Algo importante que hay que recordar es que having va despues de Group by, y antes de Order By
mario cob
Order by es lo último que debes ingresar en las consultas
Aldo Miguel Ortiz Parodi
31. Mis apuntes sobre: "¿Cómo convertir una pregunta en una query SQL?"
De pregunta a Query
Claudio Jesus Vázquez Villanueva
Las preguntas ayudan mucho que buena clase.
Juan Camilo Valencia Silva
LIKE ➡️ Nos ayuda a filtrar los registros cuando solo conocemos una parte de la información.
BETWEEN➡️ Nos ayuda a filtrar registros que estén entre un rango.
También debemos de tener en cuenta que si la condición es numérica se escribe sin comillas simples de lo contrario la condición se debe escribir dentro de comillas simples, Ej: ‘Texto’.
Sebastian Rodriguez
Adjunto un pequeño resumen de mis apuntes en general:
Andrey Ruiz
Super resumen, muchas gracias!!
Dario Mendoza
🎅🏿
Alejandro Sebastian Dubon Estrada
Como convertir una pregunta en un query SQL
Lo que quieres mostrar = SELECT
De donde voy a tomar los datos = FROM
Los filtros de los datos que quieres mostrar = WHERE
Los rubros por los que me interesa agrupar la informacion = GROUP BY
El orden en que quiero presentar mi informacion ORDER BY
Los filtros que quiero que mis datos agrupados tengan HAVING
Carlos Andrés Almanza Cabrera
Sería interesante un sistema que traduzca preguntas a consultas de bases de datos.
Alessandro Staiano
Si que seria interesante si, pero seria complicado ya que cada db tiene unas tablas y unos campos distintos. Pero si que seria interesante tenerlo dentro del workbench ya que conoce todos los datos de nuestras bases de datos.
Si por algun casual alguien sabe de una herramienta similar agradeceria conocerla tambien.
Jaime Andres Valencia Gaviria
pues seria como hacer un compilador o interprete que corra sobre sql
Nicolás Alfredo Hidalgo Soto
Para cuando les preguntan por el maximo, minimo de algo, les aconsejo utilizar la sentencia Order By conjunto con Limit 1, debido a que eso disminuye la carga al motor de la base de datos, en contraste a usar una query anidada como se vio en la clase anterior
Juan Pablo Reina Gutierrez
Buen aporte!
Algo que había estado esperando y que me tenía un poco confundido hasta este punto, es como hacer consultas que involucran tablas cuya conexión es una tabla pivote. En el ejemplo es el caso de posts con etiquetas. La respuesta fácil sería hacer un nested query que vimos en la clase anterior a esta, pero descubrí que es más fácil hacer un doble inner join y evitamos el problema de la escalabilidad que mencionó Israel en la clase de los nested querys.
SELECT nombre_usuario, usuarios_domicilios.domicilio_id, domicilios.calle_domicilio FROM usuarios INNER JOIN usuarios_domicilios ON usuarios_domicilios.usuario_id = usuarios.id INNER JOIN domicilios ON usuarios_domicilios.domicilio_id = domicilios.id GROUP BY nombre_usuario, domicilio_id;
Ese es el ejemplo de mi proyecto, en donde la relación entré usuarios y domicilios es N:N, por lo que existe la tabla usuarios_domicilios, en donde están los registros de los diferentes domicilios que puede tener cada usuario, y los diferentes usuarios a los que puede estar asociado un domicilio.
Con ese Inner Join doble, puedo mostrar la cantidad de domicilios diferentes que tiene cada usuario con al menos un domicilio registrado, agrupados.
SELECT nombre_usuario, COUNT(usuarios_domicilios.domicilio_id) AS total_domicilios FROM usuarios INNER JOIN usuarios_domicilios ON usuarios_domicilios.usuario_id = usuarios.id INNER JOIN domicilios ON usuarios_domicilios.domicilio_id = domicilios.id GROUP BY nombre_usuario;
Además también puedes usarlo para sacar cuentas totales, en este caso, el numero de domicilios por usuario.
Hola! Yo lo hice algo distinto, pero basado en tu idea. Lo que hice fue apuntar con el FROM a la tabla pivote y de ahí hacer el INNER JOIN de Tabla1 a Tabla Pivote y Tabla2 a Tabla Pivote. Me parece que queda más legible así, que opinas?
SELECT camera_products.camera_id, camera.brand, camera.model, camera_products.product_id, products.brand, products.model FROM camera_products INNER JOIN products ON camera_products.product_id = products.product_id INNER JOIN camera ON camera_products.camera_id = camera.camera_id;