Curso SQL. Subconsultas I. Vídeo 10

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024
  • Comenzamos a ver en este vídeo las subconsultas.
    Para más cursos, ejercicios y tutoriales visita: www.pildorasin...

Комментарии • 209

  • @JustMike0.0
    @JustMike0.0 10 месяцев назад

    Tienes una forma de enseñar explendida, realmente se siente un privilegio escuchar las explicaciones de formas tan claras. Muchas gracias.

  • @nilo591
    @nilo591 6 лет назад +23

    Eres un genio, el hecho de que puedas transmitirnos tus conocimientos y experiencia en programación mediante estos vídeos es sensacional. Muchas gracias y Saludos desde Colombia.

  • @juliocesarlarios2079
    @juliocesarlarios2079 6 лет назад +3

    Hola, buen día, muchas gracias por compartir tu conocimiento, la ultima vez te doné sólo un euro, soy de México y los euros están muy caros, pero trataré de donar constantemente a tu canal, la gente como tú es la que merece ganar más. Yo soy docente de bachillerato y sé lo que significa compartir el conocimiento y nuestra labor.

  • @vargasvarzav3410
    @vargasvarzav3410 9 лет назад +66

    Maestro! Saludos desde Latinoamerica, con usted aprendo mas y mejor que la universidad. Siga profundizándonos aun mas en el mundo del SQL. Muchas gracias.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +6

      +Vargas Varzav Hola !! Gracias por el comentario. En ello estamos. Un saludo

  • @AntonioLopez-fy1ch
    @AntonioLopez-fy1ch 6 лет назад +45

    12:26 Tambien funciona con esta consulta
    SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN = 'CERÁMICA'

    • @denzelcaleb7738
      @denzelcaleb7738 4 года назад +2

      Ya decía yo eso v:.

    • @newentu
      @newentu 4 года назад +1

      toda la razon!!

    • @newentu
      @newentu 4 года назад +1

      @Angelo Rodolfo MOSCOSO VILCA exacto!

    • @BelenPaulino
      @BelenPaulino 3 года назад

      @Samir Harley we dont freaking care. get the .... out of here dammed scammer.

    • @McWit0
      @McWit0 3 года назад

      @Derek Porter shut up dog, we are not stupid, we know it's scam

  • @anamula7221
    @anamula7221 7 месяцев назад

    Muchas gracias por su generosidad, no se imagina el bien que hace.

  • @victorrobles2555
    @victorrobles2555 9 лет назад +8

    Wow! el mejor maestro del mundo, Saludo desde Republica Dominicana. Muchas Gracias por los videos

  • @faciol125
    @faciol125 3 года назад

    buenas tardes, estoy aprendiendo de este genio que es Juan Gómez, me encanta su forma de enseñar y gratis, y como dice él con lo que hemos aprendido hasta este ejercicio que platea sobre buscar todos los productos que sean mayores que todos los precio de cerámica, para mi es mas fácil realizar el ejercicio buscando el máximo de la sección de cerámica y después buscar todos los artículos que sean mayores a este . este comentario los escribo por que estoy tratando de entender el operador ALL, espero sus retroalimentación.
    así me quedo SELECT * FROM productos WHERE PRECIO> (SELECT MAX(PRECIO) FROM productos WHERE SECCIÓN='CERAMICA')

  • @antoniossmenezes
    @antoniossmenezes 2 года назад +1

    Gracias maestro, de verdad eres un genio! Soy brasileño estoy haciendo un curso con un maestro brasileño pero que no es tan bueno cuánto tú! Bendiciones! Contigo comprendi en la primera vez que vi tu classe!

  • @Junior95606
    @Junior95606 3 года назад +1

    Muchas gracias por compartir sus conocimientos, que grandísimo aporte. Usted es de esos seres humanos en los que vale la pena creer en la humanidad. Saludos desde Colombia ¡Mil gracias!

  • @evaristj.3974
    @evaristj.3974 7 лет назад

    De todos los que he visto eres el mejor que lo explica

  • @SamGamyiKLC
    @SamGamyiKLC 5 лет назад +17

    18:40 Una forma muy simple de entender el uso de all y any, es viéndolos como Max y min. De echo arrojan los mismos resultados y es un ejemplo más de lo ambiguo que es el lenguaje SQL.

  • @kryztalVEVO
    @kryztalVEVO 3 года назад +1

    Soy recién egresada de economía y me encuentro en busca de trabajo, con los cursos gratuitos que nos comparte en su canal estoy aprendiendo a manejar nuevos programas para mejorar mi currículum. ¡Muchas gracias por compartir sus conocimientos!

  • @joaquinfg6153
    @joaquinfg6153 6 лет назад

    Gracias Juan, eres el mejor profesor que he tenido, tienes una metodología para explicar impecable. Un saludo

  • @andersonmoreta1349
    @andersonmoreta1349 9 лет назад +1

    Definitivamente el Mejor maestro. Saludos desde República Dominicana

  • @alansalinas4311
    @alansalinas4311 2 года назад +4

    Te quiero mucho Píldoras informáticas

  • @bryanoswaldocanonvalladare1567
    @bryanoswaldocanonvalladare1567 5 лет назад

    Sensei, con usted estoy viendo Python, y busque por internet subconsultas puse el video y cuando vi era ustede Sensei que bien explica.
    Usted se toma el tiempo de explicar cada paso algo que no hacen en las Universidades, la mejor manera es explicar paso a paso, es mas comprendible de esta manera.
    Gracias.

  • @fedee141
    @fedee141 8 лет назад +3

    Muchas gracias por estos videos tutoriales !!!
    Si no les anda el ALL pueden usar la siguiente consulta:
    SELECT * FROM productos WHERE precio > (SELECT MAX(precio) FROM productos WHERE seccion = "CERÁMICA");
    Y Vean que les tire bien los resultados, a mi en este caso, me tiraba resultados falsos (precios menores o mayores de la seccion cerámica). La solucion a esto es cambiar el TIPO DE DATO del precio, tiene varchar(10) y es una practica muy mala poner ese tipo de dato a los precios. Cambienlo por DECIMAL y si les tira error, reemplazen las comas de los precios por los puntos. Ejemplo AR01 6.63 en vez de 6,63. Con esto se les tiene que solucionar. A mi me va bien. Saludos!

    • @albertogarciaolmedo5384
      @albertogarciaolmedo5384 2 года назад

      Funcionó. Añado que en mi caso tuve que añadir que, en el menú Productos>Estructura>Campo Precio Pulsar Cambiar>Setear en DECIMAL> Cotejamiento ninguno (la opción que aparece más arriba del desplegable, que está en blanco). Si ponía otros cotejamientos que probé, ese campo no se cambiaba y se quedaba en VARCHAR. Si le quito el cotejamiento me sí consigo que me aparezca el valor en lo que le especifiqué, que en este caso es DECIMAL

  • @daviddelahoz2956
    @daviddelahoz2956 6 лет назад +1

    Me precipite un poco en la segunda subconsulta que era la subconsulta de lista pues primero escucho el ejercicio y pauso el vídeo para resolverlo yo mismo y buscar una forma de obtener el resultado antes de ver la solución y lo hice de esta forma :
    SELECT * FROM PRODUCTOS P
    WHERE P.`PRECIO` > (SELECT MAX(PE.PRECIO) FROM PRODUCTOS PE
    WHERE PE.SECCIÓN = 'CERÁMICA' ); -- // AQUÍ SOLO BUSQUE EL PRECIO
    MÁXIMO DE LA SECCIÓN
    CERÁMICA//
    Bueno igual aunque me dio el resultado realmente al ver la solución aprendí algo nuevo
    que es el > ALL y el > ANY
    Muchas gracias por compartir tu conocimiento y te felicito porque subes contenido de calidad.

    • @pildorasinformaticas
      @pildorasinformaticas  6 лет назад +1

      Gracias por el comentario. Estás haciendo el curso de manera correcta. Se deben pausar los vídeos e intentar hacerlo uno mismo antes de ver la solución. ¡Un saludo!

  • @ivancalderon1787
    @ivancalderon1787 9 лет назад +1

    Cordial saludo Ingeniero; muchas gracias por la excelente colaboración. Entendido al 100%, gracias.

  • @newentu
    @newentu 4 года назад

    Excelente, llevo varios dias estudiando y creando mi BD y estoy aprendiendo mucho

  • @victoriaramirezborges4612
    @victoriaramirezborges4612 5 лет назад +2

    Un comentario para quienes tienen problemas con los operadores. Lo primero que deben hacer es verificar el tipo de datos con los cuales se han almacenado los registros al importarlos desde .ods a MySql. Juan ya lo explicó, si bien se puede indicar que tipo de datos contiene cada celda antes de importarlos esto no siempre es respetado. Así que les sugiero lo verifiquen en el SGBD y lo corrijan desde allí. Ex: si un campo debe ser de tipo decimal y aparece como varchar, obviamente fallarán las operaciones que impliquen comparar valores numéricos sobre ellos. Y algo importante: desmarquen la opción de utilizar el '.' como separador de miles en el .ods. La mayor parte de los problemas que he leído aquí se solucionan con una correcta conversión de datos. Suerte.

  • @miguelangelpiquerubeda1739
    @miguelangelpiquerubeda1739 9 лет назад +1

    Perfecta explicación. Muchas gracias por compartir tus conocimientos.
    Saludos desde España, Valencia.

  • @rafaelherrera7017
    @rafaelherrera7017 4 года назад

    Da muy buenas clases, haciendo que lo complejo se vuelva accesible

  • @antoniovalderrama7080
    @antoniovalderrama7080 9 лет назад +1

    Cordial saludo Don Juan; muchas gracias por la excelente explicación.
    En el segundo tipo de subconsultas (con all y con any), las asocio con el precio mayor o al menor, correspondiente a cierto tipo de artículo definido, respectivamente.
    Un saludo fraternal.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +1

      +Antonio Valderrama Hola Antonio. Yo más que asociarlas a un tipo de artículo definido, con nuestro ejemplo de la tabla de productos las asocio más a una sección o país de origen en concreto. Por ejemplo, una consulta que muestre los productos más caros que los artículos de deportes, o una consulta que muestres los artículos más baratos que los artículos españoles por poner dos ejemplos.
      Un saludo

  • @loan00608
    @loan00608 9 лет назад +1

    Juan Gómez, antes que nada quiero felicitarte por tan excelente material y por compartir todos tus conocimientos con cada uno de los que seguimos estos videos, realmente te doy las gracias por esto.... Quisiera preguntarte algo y es en relación a este ultimo vídeo según entendí en la consulta con el comando all el busca el mayor valor de esa lista y a partir de ello lo usa como criterio para aplicar a los registros de la consulta padre.. en este orden de ideas hice dos consulas y son las siguiente:
    SELECT * FROM PRODUCTOS WHERE PRECIO > all (SELECT PRECIO FROM `productos` WHERE `SECCION` ="ceramica")
    Mostrando filas 0 - 7 (total de 8, La consulta tardó 0.0010 segundos.
    SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT max(PRECIO) FROM `productos` WHERE `SECCION` ="ceramica")
    Mostrando filas 0 - 7 (total de 8, La consulta tardó 0.0000 segundos.)
    Mi duda es los tiempos que me arroja el motor de base de dato si son del todo acertados ? por como se puede ver para cuestiones de rendimiento seria la misma consulta pero con otro punto de vista pero mucho mas optima en cuanto a tiempo de respuesta...

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Andres Grajales Hola !! Pues la verdad es que ahí me pillas. No se cuál de las dos consultas sería más óptima para el motor de la BBDD. Intuyo que con la primera hace una comprobación de la primera consulta con la segunda registro a registro. Sin embargo con la segunda primero hace una consulta (la interna) y el resultado lo usa como filtro para la consulta externa.
      Pero esto son relexiones mías que acabo de hacer porque nunca me había planteado esta cuestión en concreto.
      Un saludo

  • @educacioninformatica
    @educacioninformatica 8 лет назад +1

    Hola Mil gracias por hacer los tutoriales, simplemente excelente excelente excelente, como recibir clases en una de las mejores universidades con un excelente profesor

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +educacioninformatica Gracias !! Me alegro de que te gusten los vídeos. Un saludo!!

  • @flameclow1219
    @flameclow1219 3 года назад

    Muy bien explicado, sobre todo me he aclarado todo el ejemplo del final.

  • @rafaelcisneros7417
    @rafaelcisneros7417 8 лет назад +1

    Me gustan mucho sus vídeos, en verdad todo es tan preciso y con mucha calidad. ¡Lo felicito y tenga por seguro que recomendare ampliamente el canal! ;)

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      +RAFAEL CISNEROS Muchas gracias !! Me alegro de que te gusten los vídeos. Un saludo!!

  • @solosalsacali2355
    @solosalsacali2355 6 лет назад

    el mejor profesor de youtobe

  • @jannermunoz9984
    @jannermunoz9984 6 лет назад

    muchas gracias estaba leyendo sobre subconsultas y no entendia y este video lo explico todo muy bien entendi rapido muchas gracias

  • @rasmia09
    @rasmia09 2 года назад +1

    Muy buen curso. La consulta: SELECT * FROM PRODUCTOS WHERE PRECIO > ANY (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN = "CERÁMICA") se puede hacer como SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MIN(PRECIO) FROM PRODUCTOS WHERE SECCIÓN = "CERÁMICA") y con ALL se puede utilizar MAX, SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN = "CERÁMICA")

  • @wadago
    @wadago 8 лет назад +2

    Muy bueno Pildoras! en la universidad te dan un pdf de teoría, presentan unos power points y te largan con la guia de ejercicios... tus videos son mucho más efectivos que eso!

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +2

      Gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo!!

  • @williamalexanderpineda6098
    @williamalexanderpineda6098 2 года назад

    Gracias maestro. Sin palabras. Excelente video!

  • @adriancordova1618
    @adriancordova1618 2 года назад

    Excelente todo muy claro como el viento.

  • @karina7uriel
    @karina7uriel 3 года назад

    Me vi todos los videos de este curso hasta aca y no recuerdo haber visto LIKE...

  • @Arckaiko
    @Arckaiko 4 года назад

    Eres el mejor, Juan!!

  • @lewisv9439
    @lewisv9439 9 лет назад +1

    Muy interesante el tema. He disfrutado mucho con ello
    Gracias Crack!!!!

  • @juanjimenez9208
    @juanjimenez9208 6 лет назад +5

    Eres muy aspero hahaha, ojala hubiese visto esto cuando vi mi curso de bases de datos, muy bien explicado felicitaciones

  • @nielsam478
    @nielsam478 3 года назад

    Gracias Juan.

  • @Jesus-xu7qg
    @Jesus-xu7qg 6 лет назад +1

    Muchas gracias me sirvió de mucha ayuda!

  • @marcosugarte6133
    @marcosugarte6133 7 лет назад +1

    Felicitaciones!!!. Buen video.

  • @philipuslll
    @philipuslll Год назад

    Hola cómo estás, me encantan tus curso, explicas muy bien. Podrías de pronto actualizar el curso de SQL añadiendo el manejo de cursores, creación de informes y algo de programación con SQL como uso de ciclos, if etc dentro de este lenguaje. Gracias

  • @nicolasexp5439
    @nicolasexp5439 4 года назад

    Muchísimas gracias

  • @gabo3242
    @gabo3242 Год назад

    muy buen video, muchas gracias!!!!

  • @hectorgonzalez8508
    @hectorgonzalez8508 8 лет назад +1

    Excelente video, muy bien explicado

  • @albertomorales987
    @albertomorales987 8 лет назад +3

    tutor primero que todo le doy las gracias por todo estos grandiosos aportes que nos brinda!!!!....
    Por otra parte yo tambien tengo el error que le da a los seguidores de su canal con la instruccion ALL, pero tambien me doy cuenta que ANY no trabaja en mi version; lo curioso es que la instruccion ALL aparece en la lista de instrucciones de autocompletado de PHPMyAdmin....

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Si, ya lo he leído en otros comentarios. Es algo que tengo que investigar cuando tenga un rato porque no se a qué puede ser debido. Un saludo!!

  • @jesuv5875
    @jesuv5875 7 лет назад +8

    un master. No me sorprendería que juan saque algo por alli que le haga competencia a Marck Zuckegber o a Bill Gates

  • @fernandopalma9192
    @fernandopalma9192 4 года назад

    Hola, la verdad que estoy muy contento y agradecido de que existan personas como tu que impartan cursos de calidad universitaria en youtube y totalmente gratis. Quería hacerte una consulta, al comienzo del video mencionas que ya has explicado el uso de LIKE y comodines, pero yo me he visto todos los videos hasta el momento y en ninguno del curso SQL los has mencionado. Quería saber si a ese video lo has subido en otro curso. Desde ya muchas gracias

  • @CesarYustiz
    @CesarYustiz 8 лет назад +12

    RESUELTO PROBLEMA (ALL): alguien aquí ya lo resolvió pero sin usar el ALL pero es el mismo resultado.
    SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN="CERÁMICA")

    • @sebeatport
      @sebeatport 5 лет назад

      Exacto. En este caso puntual también funcionaría.

    • @lucaspetersenfrers1708
      @lucaspetersenfrers1708 3 года назад

      Ahí estás trasnformando una subconsulta de lista en una escalonada, pero sí, funciona

  • @melvinmonroy
    @melvinmonroy 7 лет назад +3

    genial gracias!!!

  • @owa2337
    @owa2337 Год назад

    En 2023 muchas gracias ❤

  • @oscartoledo543
    @oscartoledo543 4 года назад

    2020 ! vengo de python...gracias maestro !!

  • @josemariaaguilar-amatferna9950
    @josemariaaguilar-amatferna9950 9 лет назад +2

    Hola, realmente es una pena que no te puedas dividir para llevar todos estos cursos con más rapidez, ya que cuando uno intenta avanzar por la red es raro que consiga hacerlo con la celeridad que lo hacemos contigo. Realmente creo que es muy interesante el trabajo que está realizando y ojalá que algún día te de los frutos que te mereces. A la espera de una nueva entrega del Curso de SQL, recibe un saludo.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +3

      +JOSE MARIA AGUILAR-AMAT FERNANDEZ Hola !! Gracias por el comentario. Es cierto lo que dices. hay épocas que puedo subir un vídeo diario e incluso más. Pero hay otras épocas, como la que estoy pasando ahora mismo, en las que no tengo tiempo para subir más que uno o dos a la semana.
      Espero que en breve mi trabajo me deje un poco más de tiempo libre y poder subir vídeos a un ritmo mayor. Un saludo

  • @rozoneri
    @rozoneri 8 лет назад +1

    Esto lo asoció no sé si erroneamente con funciones que retornan un resultado a la función que le invocó,esta muy mal esta analogía? por cierto en serio que manera tan clara,precisa que tiene usted para enseñar,creo que he aprendido más con usted que donde estudio.

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      +Easylisimo La analogía es perfecta. Realmente es como funciona. Gracias por el comentario. Un saludo!!

  • @Ricardo-co2gv
    @Ricardo-co2gv 4 года назад

    gracias amigo

  • @josel.martinez6153
    @josel.martinez6153 7 лет назад +1

    Saludos Juan; esta consulta de genera error, select * from productos where precio > ALL(select productos where sección=' cerámicas'...........#1064 - You have an error in your SQL syntax; check the manual
    that corresponds to your MariaDB server version for the right syntax to
    use near 'LIMIT 0, 25' at line 1......pero cambio el ALL por el ANY y funciona sin problemas...

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      Hay un error en el segundo select. No le especificas los campos a la consulta. Un saludo!!

  • @albertrosell1943
    @albertrosell1943 4 года назад

    gracias

  • @vrdarkal
    @vrdarkal Год назад

    Hola, muchas gracias por tus enseñanzas profe. Como observación el all (en este caso) puede ser reemplazado por max(precio) dentro del select interno. :)

  • @maximoferrero2026
    @maximoferrero2026 6 лет назад +1

    Hola, Juan estoy haciendo alguno de tus cursos pero en este tema de de mayor y menor la consulta no me da error pero cuándo le pongo el signo > todos los precios que me da son los más pequeños y para que me de los precios mayores que le tengo que poner < menor que y entonces me da los más altos y también los más bajos
    SELECT SECCIÓN, NOMBREARTÍCULO, PRECIO FROM PRODUCTOS WHERE PRECIO > ALL (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    gracias

    • @bryancfz6166
      @bryancfz6166 6 лет назад

      Tenemos el mismo problema desde MYSQL

  • @ernestofavio6735
    @ernestofavio6735 4 года назад

    EL MEJOR

  • @adalbercondelucero6119
    @adalbercondelucero6119 2 года назад

    Muchas gracias por tu video, estoy haciendo un curso en coursera, y este video me ayuda a entender mejor lo que estoy viendo, ¿ el any en el primer ejemplo me muestra todos los precios mayores a 20 euros, osea al menor precio?

  • @Alukardo11
    @Alukardo11 8 лет назад

    Muy bueno master

  • @mivida3713
    @mivida3713 8 лет назад +1

    muy bien expicado brother likeee

  • @ethancasillas8755
    @ethancasillas8755 8 лет назад +1

    Hola Juanito, Gracias por tu maravillosa labor todo es grandioso!!!
    Y bueno, ALL compara precios de registros de consulta externa con el más caro de la consulta interna.
    ANY compara precios de la consulta externa con el más pequeño de la consulta interna.
    Agradecería confirmación o corrección de alguien.

    • @adrianfragacortes693
      @adrianfragacortes693 2 года назад

      A mi el any me cuesta verlo...pero por el ejemplo entiendo que si, any compara con el más pequeño de la subconsulta.

  • @leonardoortega8309
    @leonardoortega8309 4 года назад

    Exelente

  • @josemanuelperez2853
    @josemanuelperez2853 7 лет назад +1

    Tengo una pregunta un poco "especial", y supongo que dependerá de muchos factores, pero aún así me parece interesante.
    En el caso de los ejemplos, nos encontramos que hay diferentes formas de hacer lo mismo. Por ejemplo en el ejemplo de "productos cuyo precio sea mayor que el mayor de una sección" podemos solucionarlo mediante la subconsulta de lista como has apuntado y que podríamos hacer así:
    SELECT SECCIÓN, NOMBREARTÍCULO, PRECIO FROM PRODUCTOS WHERE PRECIO > ALL(SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA')
    Pero también podemos hacer lo mismo usando una consulta escalonada de este modo:
    SELECT SECCIÓN, NOMBREARTÍCULO, PRECIO FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA')
    Mi pregunta es ¿cual es el método mas eficiente?. En el primero se supone que comparamos cada registro contra todos los de la lista, y en el segundo solo con un registro. Por otro lado en cada consulta debe de ejecutarse una subconsulta donde se busca también el mas alto.
    No se si me explico adecuadamente, veo que en determinados escenarios se pueden usar diferentes aproximaciones, y obviamente en tablas pequeñas no tiene importancia pero en el "mundo real" estas cosas importan.

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      En este caso en concreto es más óptima la segunda opción (al menos en mi opinión eso creo). Como bien dices en estas tablas pequeñas (un par de tablas o tres de 40 registros cada una) no es demasiado complicado imaginar la forma más óptima, pero en real, con BBDD y cientos de tablas relacionadas entre sí cada una de ellas con miles de registros, reconocer a priori la forma más óptima de obtener un resultado es muy muy complicado (al menos para mi).
      Por eso creo que en real, con casos complejos pocas veces uno hace un estudio detenido de cómo optimizar una consulta antes de realizarla. Simplemente la haces aunque probablemente no estés utilizando la forma más óptima. Luego viene el informático de sistemas de turno encargado del soporte y dice: "¿quién está lanzando un proceso contra la BBDD que está consumiendo un 90% de los recursos de red?" Y tú con el ordenador colgado esperando que tu consulta te devuelva los resultados... estas cosas pasan. Pero distinguir la forma más óptima de realizar una consulta contra BBDD cuando esta tiene 190 tablas, 85 relaciones y miles de registros... muy complicado. Un saludo!!

  • @AgusContreras96
    @AgusContreras96 6 лет назад

    Es lo mismo utilizar las funciones de agregación, en una subconsulta, que usar una subconsulta con un all con alguno de los dos respectivos operadores?

  • @onzamono
    @onzamono 2 года назад +1

    Por si a alguien le ayuda, en estos casos se podría traducir ALL por "el producto más caro" y ANY por "el producto más barato". Es decir: "Selecciona los PRODUCTOS cuyo precio sea mayor (>) que (ALL) el más caro de la juguetería" / "Selecciona los PRODUCTOS cuyo precio sea mayor (>) que (ANY) el más barato de la juguetería".

    • @nicolasrojas2081
      @nicolasrojas2081 2 года назад

      No necesariamente el any es el más barato, según lo que explica el maestro es que puede tomar como valor de referencia cualquier producto. Entonces se entiende que es un valor aleatorio el que es utilizado.

  • @adrianiglesias4149
    @adrianiglesias4149 7 лет назад +1

    Hola Juan, ante todo enhorabuena por tus cursos. Son fantásticos, desde luego, tu forma de explicar es sublime. Estoy siguiendo el curso con el gestor SQL Server 2012. Ningún problema hasta ahora en ese aspecto, pero me surge una duda con este tema de las subconsultas y los ejemplos que planteas. A efectos prácticos, ¿qué diferencia habría entre estas dos expresiones?:
    SELECT * FROM PRODUCTOS WHERE PRECIO > ALL (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    Ambas devuelven los registros de los productos cuyo precio sea mayor que todos los productos de la sección de cerámica.
    SELECT * FROM PRODUCTOS WHERE PRECIO > ANY (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MIN(PRECIO) FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    Ambas devuelven los registros de los productos cuyo precio sea mayor que cualquiera de los productos de la sección de cerámica. ¿Podrían utilizarse indistintamente? Muchas gracias, y una vez más, enhorabuena por el enorme trabajo que haces. Saludos desde A Coruña.

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +2

      Yo nunca vi diferencias entre ambas instrucciones. Pero tal vez hay algo que yo no se... Lo que si te puedo puntualizar es que las consultas con funciones de agregado (max, min etc) deben llevar la cláusula "having" para establecer criterios en vez de "where". Un saludo!!

    • @adrianiglesias4149
      @adrianiglesias4149 7 лет назад +2

      Muchas gracias por la respuesta y la aclaración. Tienes mucha razón con respecto a la cláusula "having" en las consultas con funciones de agregado, de hecho lo has recalcado bastante en los vídeos, empiezo este curso con 0 conocimientos de SQL y hay "cosillas" que aún me cuesta recordar. Un saludo Juan.

  • @eduardo-1822
    @eduardo-1822 8 лет назад +1

    muy buenos videos.. tendras uno donde expliques las transacciones con mysql en php? me refiero a hacer rollback a todaas las insercciones, actualizaciones o eliminaciones cuando algo sale mal en el archivo php

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      No en este curso. Pero es muy posible que lo vea en mi curso de PHP que aún está en elaboración. Un saludo!!

  • @josaltva
    @josaltva 8 лет назад +3

    Amigos, estuve revisando sobre el error ALL, al menos en mi versión de motor motor de base de datos no es mysql, es Maria DB, independientemente de que también se pueda usar phpmyAdmin, revise la documentación, corrí pruebas con los ejemplos en la misma página de maría DB a nivel línea de comandos y ni así funciona, ahora estoy haciendo una actualización de la versión 10.1.16 a la 10.1.18 aunque no estoy seguro que esto lo resuelva, de todos modos les comento el resultado si fuera positivo, saludos

    • @newentu
      @newentu 4 года назад

      y bueno como te fue??

  • @franconoce1728
    @franconoce1728 5 лет назад

    like, muy bien explicado

  • @GermanHard
    @GermanHard 8 лет назад +1

    Muchas gracias me quede bloqueado en un ejercicio de clase y solo me ha bastado 6 min de video para entenderlo y hacerlo

  • @albertogomezinigo2188
    @albertogomezinigo2188 7 лет назад +1

    Muchas gracias por el curso. Muy completo!!! Mi pregunta va relacionada con: ¿QuÉ pasaría si sustituyo ALL por MAX en el caso de subconsulta de lista que tratas en este capitulo?. Intuitivamente habria usado MAX. Gracias de antemano.

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад +1

      Hola !! Ya no recuerdo qué consulta estaba haciendo en este vídeo, tendría que ver mi propio vídeo para recordar. Pero tengo que decir que en ocasiones diferentes formas de hacer una subconsulta pueden devolver los mismos registros. El uso de MAX para devolver el registro con valor numérico más alto y después comprarlo con la consulta general da el mismo resultado que el uso de ALL. Me suelen preguntar cuál de las dos maneras es más eficiente y no estoy seguro. Pero creo que con MAX. Un saludo!!

  • @leepaulperezcarpena1400
    @leepaulperezcarpena1400 9 лет назад +1

    Buenas noches, saludos por el gran aporte que nos brindas. Mi consulta es si se pueden hacer cubos, y si se puede, se desarrollara en esta parte del Sql

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +lee paul perez carpena Hola !! Los cubos de datos dependen del gestor de BBDD que estés utilizando y no del lenguaje SQL. Por este motivo no se tratarán en este curso. Tal vez en un curso futuro de SQl Server que pienso elaborar en el futuro si trate el tema.
      Un saludo

    • @leepaulperezcarpena1400
      @leepaulperezcarpena1400 9 лет назад +1

      Seria excelente maestro, yo en realidad le estoy siguiendo su clases en el SQL server

    • @garciafierrobraianalex3751
      @garciafierrobraianalex3751 5 лет назад

      SKERE

  • @luissoriano8099
    @luissoriano8099 6 лет назад +1

    Me parece que el ejemplo de ANY en este video no tendria un uso practico en la vida real, la subconsulta tiene su logica pero no me parece que un ejemplo asi en la vida real se quiera hacer esa comparacion. De todas maneras gracias por un comando mas aprendido.

  • @mizutsunemt3375
    @mizutsunemt3375 6 лет назад +2

    genio

  • @wgmorenoh
    @wgmorenoh 5 лет назад +1

    Juan, hola, no vi que hablaras de la subconsulta correlacionada, me perdí o no lo hiciste?, gracias. En el vídeo 11 tampoco lo hablas.

    • @pildorasinformaticas
      @pildorasinformaticas  5 лет назад

      Hace tiempo que grabé estos vídeos y no recuerdo bien. Es posible que no mencionara el término de subconsulta correlacionada pero creo recordar (no estoy seguro) que hice algún ejemplo de consulta y subconsulta extrayendo datos de la misma tabla utilizando funciones de agregado (lo que sería lo que se conoce como subconsulta correlacionada). Un saludo!

    • @wgmorenoh
      @wgmorenoh 5 лет назад

      @@pildorasinformaticas Si lo hiciste, gracias.

  • @Liznardo
    @Liznardo Месяц назад

    Buenas, este curso aun sirve para poder entender bien las sub consultas, es que me acabo de ver un curos de sql y pues el apartado de subconsultas lo noto como para poder ver un curso especificado a ellas.

    • @pildorasinformaticas
      @pildorasinformaticas  29 дней назад +1

      SQL no ha cambiado en los últimos años. Todo lo que aparece en este curso sirve perfectamente a día de hoy (29-10-24). ¡Saludos!

  • @juandavidruizescalante5808
    @juandavidruizescalante5808 7 лет назад +4

    BUENAS TARDES, cuando realizo la sub consulta me trae los mismos datos que a ud, pero cuando hago la consulta padre me trae datos que ni siquiera y lo hago tal cual como lo muestra el video, saludos y agradezco una respuesta.
    de igual forma me sucedió con la consulta de ceramica.
    SELECT * FROM productos WHERE PRECIO >ALL(SELECT PRECIO FROM productos WHERE SECCION='JUGUETERIA')
    DESTORNILLADOR 6,63
    RAQUETA TENIS 93,47
    MANCUERNAS 60
    CAMISA CABALLERO 67,13
    ALICATES 6,74
    BALON BALONCESTO 75,27
    DESTORNILLADOR 9,06

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      ¿Tienes la misma información que yo en la BBDD? ¿Los nombres de los campos tienen tildes? ¿Cuando hablas de consulta padre, a qué consulta te refieres exactamente? ¿Podrías ponerla por aquí?

    • @bryancfz6166
      @bryancfz6166 6 лет назад

      imgur.com/MXlshgp

    • @MiguelAngel-iu1zn
      @MiguelAngel-iu1zn 6 лет назад

      LOGRASTE SOLUCIONAR.... TB ME PASA LO MISMO...

  • @andersonleon6221
    @andersonleon6221 8 лет назад +1

    los archivos com los problemas para resolver maestro eso ayuda mucho excelente aporte del video 9 en adelante no tiene no hay archivos de ejercicios

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Hola !! Ya, ya lo se. Los voy haciendo poco a poco cuanto tengo algo de tiempo. Un saludo!!

  • @jubatusvc
    @jubatusvc 9 лет назад +1

    Hola Juan:
    Un par de problemillas que tuve descargando tus ficheros .OTS.
    El primero que al importa me da error algo así como "muchas columnas"... en el fichero a importar. Eso queda resuelto guardando el archivo en formato .csv y volviendo a importar.
    Entonces otro pequeño problemita es que sustituye tildes por símbolos de ?; y ese problema por más que cambié varios modos de cotejamiento no lo pude solucionar.
    Gracias por tus cursos, tu tiempo y tu buen hacer. Un cordial abrazo.

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      +Mariano VC Hola !! Gracias por el comentario. ¿Has probado con UTF8-general?

    • @jubatusvc
      @jubatusvc 9 лет назад

      +Mariano VC Hola Juan. Lo puse y sigue igual. En un Mac me va perfectamente y en otro ordenador con windows 8 no funciona y sigue omitiendo las tildes. ???

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад

      pues la verdad, no sabría decirte ahora mismo a qué se debe. Intuyo que debe ser algo de la configuración del servidor del ordenador donde tienes Windows 8

  • @Nizark-dj9uf
    @Nizark-dj9uf 6 лет назад

    Buenas Juan, habra un curso de Postgre SQL ?

  • @milovanbusolich6897
    @milovanbusolich6897 5 лет назад +1

    Genio

  • @Rest28_Efe1
    @Rest28_Efe1 6 лет назад

    Hola! Conozco todos los conceptos y sé utilizarlos, pero mi problema es que cuando leo un enunciado no sé exactamente cual he de utilizar. ¿Tienes algún truco/consejo para saber cual hay que utilizar? Por ejemplo: si sale la palabra "cada", seguramente haya que usar group by, etc...

  • @aleberas8259
    @aleberas8259 8 лет назад +2

    No me funciona el ALL

  • @jorgegatica
    @jorgegatica 5 лет назад

    Me gustaria saber en algun caso en que no podria resolver con max() pero si con all

  • @santosvazquezubaldo681
    @santosvazquezubaldo681 2 года назад

    como se llama la app para pintar asi la pantalla

  • @lautarocalvar4813
    @lautarocalvar4813 6 лет назад

    Entendi el segundo ejemplo cuando usas "ALL" y se que es para que puedas dar un ejemplo explicando su uso, pero en este caso no seria mejor un SELECT * FROM productos WHERE precio > (SELECT MAX(precio) FROM productos WHERE seccion = 'Ceramica'); ?? Son equivalentes y mas visible ya que con ALL solo haces referencia al precio mayor y con MAX se obtiene lo mismo y un unico registro.

  • @yo-hx9yl
    @yo-hx9yl 2 года назад

    Hola gracias por tus vídeos podrías resolverme una duda tengo que marcar en una subconsulta en una página de clientes para diferenciarlos por nacionalidad y edad el caso es este tengo que marcar a los que sean españoles y de más de 50 años podrías ayudarme con esto por favor?

  • @maritn6
    @maritn6 9 лет назад +1

    Hola
    DIsculpa , me quede en un vídeo donde venía algo de sql injection pero ya no lo encuentro =(

    • @pildorasinformaticas
      @pildorasinformaticas  9 лет назад +1

      +mario hdz ruclips.net/video/3Qw3QQg1xYU/видео.html
      Un saludo

  • @MarcosEsqueda
    @MarcosEsqueda 8 лет назад +1

    Holaaa! Tengo una gran duda con un intento de buscador que estoy haciendo con php. En primer lugar hago una consulta que me muestra por un link si la consulta tiene más de un valor y por otra si es sólo un artículo. Pero yo quiero que cuando se muestre la hoja donde están varios artículos, seleccionar alguno de ellos por medio medio un a, input o como sea y posteriormente, redirigirlo a la vista de una sólo artículo (tal cual el que seleccioné). Muchas gracias!

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Hola !! La explicación de lo que pides es larga y compleja. Imposible de hacerla por aquí. Pero en mi curso de PHP se ven ejemplos en los que se hacen lo que pides. Un saludo!!

    • @MarcosEsqueda
      @MarcosEsqueda 8 лет назад

      Lo único donde pude basarme es en la creación del buscador. Hacer lo demás si es complicado :S

  • @lordangus77
    @lordangus77 8 лет назад +1

    Hola, buenas! Felicitaciones por tu canal... es de lo mejor que hay! una consulta:
    Estoy trabajando con el paquete xampp y phpmyadmin me dice que "palabra clave no reconocida" cuando uso ALL. Esta es mi consulta: SELECT * FROM PRODUCTOS WHERE PRECIO > ALL (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN='CERÁMICA');
    Alguna idea de porque puede ser?? Muchas gracias por tu aporte!

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад +1

      La verdad es que no. Debería reconocer la instrucción. El código es correcto y el gestor es el mismo a pesar de trabajar con paquetes diferentes, lo cuál no debería influir para nada en esto. A ver si alguien más lo lee y aporta algo de luz.

  • @pimentelsuzo
    @pimentelsuzo 4 года назад

    buenas tardes maestro un gran abrazo y muchas gracias por sus aportes excelentes. he intentado la consultas pero siempre me salen los precios mas bajo . asi la hago.
    SELECT * FROM PRODUCTOS WHERE PRECIO> ALL (SELECT PRECIO FROM PRODUCTOS WHERE SECCIÓN="CERAMICA")

    • @santiagocaballero9450
      @santiagocaballero9450 4 года назад

      Intenta con Select * From Productos Where Precio > (Select Max(Precio) From Productos Where Sección="Cerámica")

  • @nachowolf4471
    @nachowolf4471 4 года назад

    Hola como realizarian este comando pero correctamente, ya que de esta manera no se puede:
    MAX(COUNT(CÓDIGOCLIENTE)) FROM PEDIDOS
    Mi intencion es contar los pedidos de los clientes y luego obtener el que mas pedidos hizo. Como lo harían? Las tablas temporales con una buena solucion pero acces no cuenta con ellas.

  • @ethyleblanc2936
    @ethyleblanc2936 3 года назад

    Hola! estoy viendo SQL por primera vez y ya voy en este video (10), pero tengo una consulta. Hace pocos dias hice un curso de SQL query performance pensando que me enseñarian algo similar a este curso pero no, resulta que era de como hacer las querys mas performantes y trabajar en la base de datos de la forma mas eficiente posible. El profesor que dicto el curso dijo que jamas se debe poner un select dentro de otro select o dentro de un where porque este tipo de subconsultas consume muchísimos recursos y en una base de datos muy grande esto puede ocacionar problemas y que los mismos resultados se pueden conseguir con un join porque a fin de cuentas lo que se hace es cruzar tablas.
    Me gustaria saber tu punto de vista con respecto a esto y si crees que realmente todas las subconsultas pueden a fin de cuentas suplirse con join. Gracias!

    • @adriancordova1618
      @adriancordova1618 2 года назад

      Así es yo hice 2 SELECT y se me quemó mi ordenador. No pude controlar el incendio y se quemó toda mi casa tuve que llamar a los bomberos y salió en las noticias .....

  • @joseolivo3475
    @joseolivo3475 7 лет назад

    Hola Buenas noche
    quiero una ayuda
    es saber cuando se modifico o inserto un registro en una tablas en sql server

  • @cesaremoreira
    @cesaremoreira 2 года назад

    Hola, estoy haciendo una revisión de temas relacionados a base de datos y me saltó una duda, las consultas escalonadas son llamadas también escalares?, gracias y adelante maestro

  • @angeloernestofloresmolero3424
    @angeloernestofloresmolero3424 2 года назад

    Buen video y me preguntaba si podria resolver este archivo de northwind que encontre porfavor se me complico🙏🙏
    1. Crear una base de datos llamada SQLSERVER con más de dos grupos, decida los nombres, crearla en C:\Sufi. Asignar
    a cada archivo 30MB de tamaño inicial.
    2. Cree un esquema Olimpiada y cree las tablas Promocion y Integrantes con clave foránea de Promocion en uno
    de los grupos creados. Inserte registros.
    3. Cree una tabla llamada Mensualidad particionada por el campo del código que será nchar(12). Use por lo menos
    5 particiones, decida usted a que grupo se asignará cada partición.
    4. Crear un usuario que tenga los permisos para ver e insertar datos en las tablas de esquema Olimpiada.
    En el mismo Script, usando Northwind.
    5. Crear una función llamada fduProductosPorAtender que retorne una tabla con los productos que tienen unidades
    por atender (Campo UnitsOnOrder) o que el Stock (UnitsinStock) es menor que el nivel de reposición
    (ReorderLevel). Use la función en una instrucción para crear una vista (decida usted el nombre) y muéstrela en
    Excel.
    6. Crear una función definida por el usuario que devuelva las unidades vendidas de un producto en un determinado
    año. Luego liste los productos con las cantidades vendidas entre Octubre y Diciembre de 1997 que tengan un precio
    entre 10 y 30.
    7. Cree un Trigger para la tabla Suppliers que no permita ingresar registros con el mismo nombre (CompanyName)
    8. Crear un usuario (decida el nombre) con el login del mismo nombre y asigne permisos de lectura y escritura
    únicamente en las tablas Empleados, Clientes y Productos
    9. Cree un cursor que muestre los empleados y las órdenes generadas cuya carga (Freight) sean entre 10 y 50
    10. Cree una vista con las Empleados (Employees) y la cantidad de productos vendidos, así como el monto total
    generado, incluya los datos de la vista en una hoja del archivo de Excel
    11. Crear un archivo en Excel con una lista de empleados e importar los datos en una tabla EmpleadosMaestro,
    asignar una PK al finalizar el proceso. El proceso de importación debe incluir las capturas de las pantallas e
    incluirlas en un documento de Word.
    12. Crear un SP que liste código, descripción, precio y stock de los productos, luego crear un usuario que pueda
    ejecutar el procedimiento y que no pueda visualizar las tablas.
    13. Crear un plan de Mantenimiento llamado Plan Apellidos con las siguientes características:
    a. Sub Plan 01: Base 1, usará la base de datos SQLSERVER
    i. Descripción: Plan Base Final
    ii. Tareas: Reducir la base de datos, Reorganizar índices, Copia de seguridad completa y
    Limpieza de Historial
    iii. Periodicidad: lunes, jueves, sábado. Cada hora a partir de las 5:00 pm
    b. Sub Plan 02: BaseData01, usará la base de datos Northwind
    i. Descripción: Plan Base Sociales
    ii. Tareas: Reducir la base de datos, Copia de seguridad completa y Limpieza de
    Mantenimiento
    iii. Periodicidad: martes, jueves, Domingo. Una vez a las 8:00 pm