Hola qué tal.
Bueno este es un capitulo añadido varios meses después de la última actualización.
No importa que lo encuentren en la mitad del curso es un capítulo donde vamos a hablar de su consulta
que fue un tema que me han pedido mucho y es importante aprenderlo.
Hemos visto algo de sus consultas hemos visto su consulta cuando vimos la cláusula in y Not in en lo
que es el lenguaje se huele lo que vamos a ver ahora es algo más complejo.
Qué son las consultas las consultas son sentencias SQL dentro de otras sentencias SQL básicamente es
eso.
Y para qué sirve bueno sirve para hacer muchas cosas.
Vamos a empezar a ver un par de ejemplos para que ustedes entiendan la potencia de esto de sus consultas.
Yo tengo aquí mi base de datos y lo que he creado esto es para el segundo ejercicio lo vamos a ver es
una tabla llamada permisos con un solo campo.
Vamos a ver la tabla permisos.
Vamos a ver que tiene un campo permiso de ti ni de longitud de 3 por ser de 1 tranquilamente y va a
tener un valor predeterminado de 1.
Esto lo voy a explicar bien en el segundo ejercicio pero vamos a ir de lleno a ver eso consultas vamos
a ir a nuestro generador de consultas y lo que vamos a hacer por ejemplo es supongamos que nosotros
queremos hacer un Selleck de dos campos por ejemplo el prota Deivid y lo vamos a poner de título artículo
y luego tenemos un segundo campo que es una descripción muy bien descripción de título con acento incluido.
Muy bien esto es muy simple y esto va a ser de la Tabla Productos.
Aquí no hay mucho misterio si yo ejecuto muchos
si yo lo ejecuto voy a ver todos mis productos los seis mil novecientos ochenta y nueve.
Ahora supongamos que yo filtro por un producto y le digo que quiero ver solo el provided por ejemplo
el 1006 33 muy bien tengo ese producto ahora de ese producto voy a querer obtener además del artículo
el código y la descripción voy a querer obtener por ejemplo información estadística ese artículo información
estadística extraída de las tablas de ventas.
Esto ya lo hemos hecho por ejemplo haciendo 6 uniendo tablas haciendo agrupamientos porque imagínense
que por cada registro de ventas detalle me va a volver a repetir todo el código la descripción voy a
tener que hacer Groba y hacer muchos filtros y la verdad que se puede hacer de una manera mucho más
sencilla que usando solo consultas y vamos a ver en este capítulo que podemos usar son consultas no
solo en la sección donde enumeramos los campos sino que vamos a poder hacer consultas en la cláusula
Wear.
Vamos a ver el primer ejemplo el primer ejemplo es yo quiero por ejemplo la última fecha en la que fue
vendido ese producto.
Imagínense todos los 6 que tengo que hacer si no usar a consultas para meter una consulta en el área
de Campos.
Lo que tengo que hacer es en Entre paréntesis ejecutar una sentencia SELECT.
Entonces abro paréntesis cierro paréntesis y ahí adentro voy a colocar una sentencia Cele voy a colocar
Selleck por ejemplo y va a ser la función MAKS de ventas fecha.
Aquí le voy a dar cualquier nombre van a ver que el nombre que yo coloque aquí de alias para ese para
esa función máx no va a ser usado pero a los efectos de que ustedes puedan ver algo y que quien lea
sus consultas puedan entenderla porque generalmente las funciones tienen que terminar con un alias si
no me va a dar error entonces aquí le voy a poner una fecha muy bien de dónde de la tabla de ventas.
Ok ahí yo lo que tengo es simplemente que me trae la última fecha de la tabla ventas no está relacionado
a este producto no está relacionado a la tabla ventas detalles.
Entonces lo que voy a tener que hacer aquí dentro es un Yeung
a que ventas detalle
ventas detalle y vamos a poner el o no obviamente no esto es igual a Abbe de ventas aided muy bien.
Hasta ahí todo bien aquí adentro lo que voy a tener que hacer es colocar el Wear el Wear de que el producto
que estoy leyendo porque si yo no coloco esto me va a traer la última fecha vendida de cualquier producto
entonces aquí voy a colocar por ahí de igual a 1006 33.
Y todo esto todo el resultado de esto por qué esto.
Al estar entre paréntesis es como las ecuaciones matemáticas las va a ejecutar primero lo que va a hacer
el motor es encontrar que hay un campo que en realidad de traerme como aquí arriba un campo con un alias
lo que haces tiene que ejecutar esto primero va a ejecutar esto y por el resultado de esto yo le voy
a tener que colocar un alias y este alias si es el que va a tomar en cuenta a la hora de mostrarme una
columna y esto lo vamos a llamar igual fecha aquí vamos a cambiarlo para que ustedes vean que lo voy
a poner F para que ustedes vean que toma este de aquí voy a colocarle una coma aquí porque si no no
va a funcionar y lo vamos a ejecutar Fíjense aquí ya me dice que ese producto el gran Padova cuadradas
de 6 milímetros por bolsa se vendió por última vez el 7 el 10 de julio del 2018.
Y todo esto lo he hecho sin que yo ensucie esta área sin que yo tenga que hacer 6 en esta área siempre
estoy trabajando en la tabla productos y lo que le estoy diciendo al motor es bueno estoy trabajando
en la tabla producto pero este dato lo vamos a ir a buscar otro lado que lo ejecute y así funciona esta
consulta.
Luego si me la quiero llevar a otra a otra área a otra consulta lo puedo hacer y son independientes.
Yo podría correr otra cosa aquí vamos a hacer vamos a ser un ejemplo más.
Vamos a por ejemplo decirle que además de traerme la última fecha yo quiero saber la cantidad de clientes
que han comprado este producto.
Esto es más complejo.
Entonces lo que tengo que hacer aquí es otro C.L y aquí lo que voy a usar como necesito cantidad voy
a usar el Knet el CAM de que de ventas CLI añadir ahora aquí estoy con un problema porque el mismo número
de cliente puede estar repetido muchas facturas el mismo cliente puede haber comprado 10 veces otro
cliente compró 25 veces si yo lo que quiero es la cantidad de clientes que han comprado un producto.
Voy a tener que introducir dentro del Count la función distinct la función distinguí.
No sé si recuerdan me traían valores únicos no me traía datos repetidos para ese campo.
Entonces aquí lo que voy a hacer es distinto de ventas Clea y de ir a esto obviamente le voy a dar nuevamente.
Voy a poner cualquier cosa y aquí lo que voy a hacer es fueron ventas muy bien y ahora voy a hacer el
Yeung.
Todo esto es lo mismo vamos a copiarlo vamos a copiarlo vamos a pegarlo y aquí lo vamos a llamar Knet
CLI.
Vamos a quitar aquí.
Muy bien.
Si yo corro esto me va a decir que hubo 645 clientes en toda mi gran base de datos de clientes que han
comprado este producto.
Este producto fue uno de los más vendidos por eso lo estoy usando para que vean la rapidez con la que
está ejecutando sus consultas me dice que ha encontrado seis mil novecientos ochenta y nueve filas y
todo eso me lo Barrès me lo ha resumido en columnas con datos estadísticos y esto es muy potente ustedes
podrían armar cualquier sentencia SQL y traer información que se encuentra en otras tablas inclusive
no tiene por qué estar relacionada.
Esto es a los efectos de que lo que me está mostrando sea coherente pero yo aquí podría mostrar información
ejecutar una sentencia que no esté relacionada en absoluto con la sentencia SQL original y esa es la
diferencia.
Y por eso se han creado las consultas por eso se llaman sus consultas porque si yo quisiera hacer algo
así con chains y uniendo tablas y poniendo condiciones y haciendo Group by no siempre voy a llegar a
la misma información y ahí hay determinados determinadas situaciones en las que no voy a poder sin meter
mano a una consulta.
Esto me lo han pedido.
Esto es algo que yo quería mostrárselos porque hemos visto con la cláusula in y Not in la forma de traer
sus consultas pero en ese caso es un caso donde esta sí relacionada a la consulta principal con la consulta
aquí les estoy mostrando que ustedes dentro de una consulta podrían ejecutar lo que ustedes quieran
y a veces lo que queremos es armar una sola línea 1 un solo robo de información con muchas columnas
y cada una de esas columnas que sea un dato para qué se usa esto se usa mucho en tableros de comandos
en tableros de informes en los Arpi donde me muestran semaforos.
Bueno quizás eso es una sola sentencia SELECT que lo que está haciendo es disparar son consultas totalmente
diferentes unas a la otra y lo que me devuelve es una sola línea con todos esos valores.
Esto es muy potente y es muy útil bueno voy a enseñarles una maldad Voy a enseñarles ya que ustedes
seguramente muchos trabajan en desarrollos comerciales y ustedes saben que cuando trabajan con desarrollos
comerciales y tienen clientes y ustedes les cobran una cuota mensual y a veces pasa que los clientes
dejan de pagar y ustedes dicen me siento estafado el cliente no me paga más el sistema sigue funcionando
no puedo yo jaquear el sistema y borrarle las tablas entonces es una de las cosas que se pueden hacer
es Fíjense que yo les había dicho que había creado una tabla permisos y ese permiso tiene un uno por
default y tiene un solo registro que tiene un uno.
Vamos vamos a ver una forma de hacer una consulta que ustedes podrían pegarla en todas en todas las
sentencias SQL que ustedes tengan en el sistema y automáticamente traiga datos cuando en esta tabla
permisos tiene un uno para qué me sirve esto.
El día que el cliente no me paga más yo hago que el sistema consulte una o la web o lo que sea y le
grabe un cero a esta tabla y al grabarle un cero ninguna sentencia SQL del sistema va a funcionar cuando
el cliente quiere ir a consultar un producto le va a devolver nada le va a decir que el artículo no
existe el cliente no existe no va a poder facturar no va a poder hacer absolutamente nada.
Esto úselo con responsabilidad así que vamos a meter mano a este ejercicio vamos a crear una nueva ventana
de consulta y vamos a hacer una célere por ejemplo el aided vamos a hacer una primero la sentencia común
que van a ver que va a funcionar.
Artículo y vamos a traer la descripción también
y esto lo vamos a llamar obviamente descripciãn.
Aquí no hay ningún misterio vamos a decirle que producto y ni siquiera vamos a ponerle un filtro.
Vamos a ejecutar esto y el cliente está ejecutando el sistema y todo le funciona me trae los casi 7000
artículos que ustedes tienen en la tabla muy bien.
Ahora qué pasa si en mi consulta o en cualquier consulta o en todas las consultas del sistema yo coloco
esta app Wear fíjense que Wear voy hardware que Wer una consulta puede dársele permiso es el campo permiso
from la tabla permisos y a esto le digo que sea igual a uno fíjense que igual lo pongo afuera del C.L
afuera de los paréntesis.
Si yo ejecuto esto no voy a tener ningún problema va a ejecutar lo más bien.
No me dio error señal de que esto está bien puesto aquí y ustedes si tuvieran otras consultas que en
el wears tienen algo simplemente con un Android.
Vamos a hacer de cuenta que aquí tengo Wear pero ahí es mayor a cero para que vean cómo cómo implementarlo
y cómo añadirlo a las consultas que ustedes tienen.
Todo me va a dar igual porque todos los artículos son mayor a cero en la idea pero esto lo puse para
que ustedes vean que vamos a ir a nuestra tabla permisos vamos a editar este campo y vamos a colocarle
un cero vamos a ejecutar la consulta y no me trae nada.
Fíjense lo potente de esto no me trae absolutamente nada y lo único que tuve que hacer es ir a mi tabla
y colocarle un permiso igual a cero esto es la potencia de las consultas.
Esto es algo que yo quería enseñarles como que faltaba este capítulo y bueno me alegro de que ustedes
me hagan sugerencias.
Quiero agradecerles a todos el éxito rotundo que tiene este curso.
La verdad que me llena de emoción los comentarios que dejan ustedes en las reseñas las valoraciones
y bueno y por último muy breve invitarlos al al grupo Master del desarrollo que está en Facebook donde
estamos Fernando Herrera Andrés Guzmán Mariano Rivas.
Bueno ustedes pueden leer Juan Gomila aunarse Mujica Juan Urrego Ubaldo Acosta desechaba o sea estamos
los más pesados los mejores instructores ustedes quizás vean que falta alguno pero bueno somos somos
instructores de mucho peso en Yemi y nos hemos juntado para darles un grupo de Facebook con todas las
material gratuito cupones descuentos los ayudamos en sus dudas.
Imagínense todo lo que podemos hacer y en menos de dos meses ya somos casi 8000 miembros así que los
invitamos tómense y no se van a arrepentir porque vamos a darles muchos regalos y muchas muchos beneficios
así que no los entretengo más nos vamos al próximo capítulo a seguir aprendiendo sobre bases de datos.