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.
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.
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.
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.
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!
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!
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')
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!
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.
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! ;)
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.
+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
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")
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!
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
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.
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...
+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
Hola Mil gracias por hacer los tutoriales, simplemente excelente excelente excelente, como recibir clases en una de las mejores universidades con un excelente profesor
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.
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!
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!
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
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
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....
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...
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. :)
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?
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")
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.
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.
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.
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!!
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.
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?
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
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
+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
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
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.
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!!
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.
+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
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.
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!!
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".
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.
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.
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.
+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. ???
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
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
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
¿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í?
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.
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...
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.
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?
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
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!
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
Boa tarde professor! Estou criando um relatório onde ultilizo consulta união. O relatório estava funcionando muito bem nas primeiras 50 consultas. Na proxima consulta inserida apareceu a seguinte mensagem: "Consulta Muito Complexa", e nao pude mais continuar. Existe algum modo de resolver esse problema?
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.
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!
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!!
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!
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.
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")
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.
+Vargas Varzav Hola !! Gracias por el comentario. En ello estamos. Un saludo
12:26 Tambien funciona con esta consulta
SELECT * FROM PRODUCTOS WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS WHERE SECCIÓN = 'CERÁMICA'
Ya decía yo eso v:.
toda la razon!!
@Angelo Rodolfo MOSCOSO VILCA exacto!
@Samir Harley we dont freaking care. get the .... out of here dammed scammer.
@Derek Porter shut up dog, we are not stupid, we know it's scam
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.
Tienes una forma de enseñar explendida, realmente se siente un privilegio escuchar las explicaciones de formas tan claras. Muchas gracias.
Te quiero mucho Píldoras informáticas
Es mutuo
Wow! el mejor maestro del mundo, Saludo desde Republica Dominicana. Muchas Gracias por los videos
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.
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.
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!
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!
Muchas gracias por su generosidad, no se imagina el bien que hace.
Definitivamente el Mejor maestro. Saludos desde República Dominicana
+Anderson Moreta Muchas gracias !! Un saludo
De todos los que he visto eres el mejor que lo explica
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')
Gracias Juan, eres el mejor profesor que he tenido, tienes una metodología para explicar impecable. Un saludo
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!
Gracias por tu comentario y por seguir mis vídeos. Un saludo!
Perfecta explicación. Muchas gracias por compartir tus conocimientos.
Saludos desde España, Valencia.
+Miguel Angel Piquer Ubeda Gracias por el comentario. Un saludo!!
Cordial saludo Ingeniero; muchas gracias por la excelente colaboración. Entendido al 100%, gracias.
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.
Gracias por el comentario Bryan. UN saludo!
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! ;)
+RAFAEL CISNEROS Muchas gracias !! Me alegro de que te gusten los vídeos. Un saludo!!
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.
+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
Excelente, llevo varios dias estudiando y creando mi BD y estoy aprendiendo mucho
el mejor profesor de youtobe
Gracias maestro. Sin palabras. Excelente video!
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")
Da muy buenas clases, haciendo que lo complejo se vuelva accesible
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!
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
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.
Muy bien explicado, sobre todo me he aclarado todo el ejemplo del final.
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...
+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
Muy interesante el tema. He disfrutado mucho con ello
Gracias Crack!!!!
+Lewis V jejej gracias!! Un saludo
muchas gracias estaba leyendo sobre subconsultas y no entendia y este video lo explico todo muy bien entendi rapido muchas gracias
Excelente todo muy claro como el viento.
Hola Mil gracias por hacer los tutoriales, simplemente excelente excelente excelente, como recibir clases en una de las mejores universidades con un excelente profesor
+educacioninformatica Gracias !! Me alegro de que te gusten los vídeos. Un saludo!!
Eres el mejor, Juan!!
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.
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!
Muchas gracias me sirvió de mucha ayuda!
Me vi todos los videos de este curso hasta aca y no recuerdo haber visto LIKE...
Gracias Juan.
Felicitaciones!!!. Buen video.
Eres muy aspero hahaha, ojala hubiese visto esto cuando vi mi curso de bases de datos, muy bien explicado felicitaciones
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!
Gracias por el comentario. Me alegro de que te gusten los vídeos. Un saludo!!
Excelente video, muy bien explicado
Gracias !! Un saludo
muy buen video, muchas gracias!!!!
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
Muchísimas gracias
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
genial gracias!!!
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....
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!!
2020 ! vengo de python...gracias maestro !!
EL MEJOR
gracias amigo
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...
Hay un error en el segundo select. No le especificas los campos a la consulta. Un saludo!!
muy bien expicado brother likeee
Gracias !!
un master. No me sorprendería que juan saque algo por alli que le haga competencia a Marck Zuckegber o a Bill Gates
Pues a mi si me sorprendería :))
Muy bueno master
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. :)
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?
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")
Exacto. En este caso puntual también funcionaría.
Ahí estás trasnformando una subconsulta de lista en una escalonada, pero sí, funciona
genio
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.
+Easylisimo La analogía es perfecta. Realmente es como funciona. Gracias por el comentario. Un saludo!!
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.
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.
like, muy bien explicado
gracias
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.
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!!
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.
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?
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
Tenemos el mismo problema desde MYSQL
Genio
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
+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
Seria excelente maestro, yo en realidad le estoy siguiendo su clases en el SQL server
SKERE
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
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!!
Exelente
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.
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!!
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.
+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
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.
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!!
Buenas Juan, habra un curso de Postgre SQL ?
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
Hola !! Ya, ya lo se. Los voy haciendo poco a poco cuanto tengo algo de tiempo. Un saludo!!
En 2023 muchas gracias ❤
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".
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.
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.
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.
+Mariano VC Hola !! Gracias por el comentario. ¿Has probado con UTF8-general?
+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. ???
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
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
y bueno como te fue??
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
¿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í?
imgur.com/MXlshgp
LOGRASTE SOLUCIONAR.... TB ME PASA LO MISMO...
Me gustaria saber en algun caso en que no podria resolver con max() pero si con all
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.
Muchas gracias me quede bloqueado en un ejercicio de clase y solo me ha bastado 6 min de video para entenderlo y hacerlo
Pues me alegro de que le vídeo haya ayudado. Un saludo!!
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...
No me funciona el ALL
como se llama la app para pintar asi la pantalla
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.
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!
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?
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
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.
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!
@@pildorasinformaticas Si lo hiciste, gracias.
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
Hola Buenas noche
quiero una ayuda
es saber cuando se modifico o inserto un registro en una tablas en sql server
No tiene la base de datos para descargarla?
Boa tarde professor!
Estou criando um relatório onde ultilizo consulta união.
O relatório estava funcionando muito bem nas primeiras 50 consultas. Na proxima consulta inserida apareceu a seguinte mensagem: "Consulta Muito Complexa", e nao pude mais continuar. Existe algum modo de resolver esse problema?
Copiar e colar aqui o código para sua consulta para que eu possa ajudar. Uma saudação!!
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.
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!
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!!
Lo único donde pude basarme es en la creación del buscador. Hacer lo demás si es complicado :S
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!
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.
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")
Intenta con Select * From Productos Where Precio > (Select Max(Precio) From Productos Where Sección="Cerámica")