Hola qué tal.
Bienvenidos a este nuevo capítulo del curso completo de base de datos.
Y hoy vamos a saber cómo unir tablas con la cláusula Wear las uniones de tablas generalmente se realizan
con una cláusula llamada Shayne.
Tenemos left Cheung right Cheyne full Cheyne y INER soy pero vamos a ver ahora eso lo vamos a aprender
después no se hagan problema ahora vamos a ver cómo unir tablas que pueden ser dos o tres las que ustedes
quieran.
Utilizando la cláusula Wear los expertos tratan de no usar esto por qué porque solamente vamos a poder
replicar lo que van a aprender luego como INER Yeung no vamos a tener la posibilidad de realizar esto
con Wear lo mismo que nos da el Raison el Leff y el Fullbring.
Luego van a aprender esto así que lo que yo quiero es que ustedes tengan una alternativa que aprendan
una alternativa de cómo unir tablas es algo muy fácil.
Creo que es más fácil aprender esto que aprenderlo.
De hecho fue lo primero que yo aprendí y luego me costó desprenderme de esta técnica.
Por supuesto luego a medida que fui necesitando más complejidad fui utilizando la otra estructura de
unión de tablas.
Vamos a ver un ejemplo muy sencillo nosotros tenemos que unir nuestra tabla ventas con nuestra tabla
clientes así que vamos a comenzar con nuestro Selleck y yo quiero mostrar por pantalla primero la fecha
y luego el número de factura
luego quiero mostrar el Heydi de cliente
el nombre del cliente la razón social Fíjense que aquí ya estoy metiendo campos de otra tabla no de
la tabla ventas y por último quiero mostrar el total de la factura.
Ok muy bien.
Cuando toque poner el from voy a tener que mencionar ambas tablas la tabla ventas Koma La tabla clientes.
Aquí podría colocar Comas y comas y unir tablas una al lado de la otra pero estoy obligado a colocar
una cláusula Wear porque por qué tengo que indicarle a la instrucción Select cuál es la condición por
la cual van a unirse ambas tablas.
Yo tengo que unir las tablas como las 1 diciéndoles que el campo ventas CLI ahí de ir tiene que coincidir
con el campo Clea y Dir. de la tabla clientes.
Se entiende esto por cada registro de ventas va a tomar el campo Clea y Dib de ventas y va a buscar
en la tabla clientes cuál es el registro de ese cliente.
Vamos a ejecutarlo y ver cómo funciona.
Fíjense me trae la fecha como lo había previsto.
Me trae el número de la factura me trae el Heydi de cliente me traen la razón social recuerden que le
había dicho que el cliente número 1 era consumidor final y el total de esa factura.
Aquí tengo otro cliente ya fue a buscar su nombre correspondiente.
El total de factura se vuelve a repetir consumidor final porque es otro número de factura.
Estos son ejemplos tomados de una base de datos real y puedo mostrar y mostrar y mostrar cómo se han
unido estas dos tablas.
Fíjense lo sencillo de esto lo sencillo de unir por un campo es lo que habíamos dicho los campos Identity
están uniendo mi aided de una tabla con la tabla maestra la tabla de venta está unida a la tabla de
clientes no como Foreing pero si están unidas al menos de esta manera los dos campos son índices y la
consulta se realiza de manera rapidísima.
Si yo no tuviera el campo cliente no tuviera una prima ariki y no tuviera un índice por cada registro
de factura que yo leo tiene que el motor recorrer todos los clientes hasta encontrar el cliente que
tenga ese número de aided.
Por eso es tan importante el tema de los índices.
Vamos a ver algunas cositas más.
Supongamos que esto yo lo tengo que exportar a un Excel y para presentárselo a alguien.
A mí no me gusta que salgan estos títulos ventas y bajo fecha los nombres de los campos.
El usuario final no tiene por qué ver esto así que vamos a aprender el tema del alias donde a cada campo
yo puedo indicarle un Leuven un nombre de columna que quiero que tenga.
En cuanto a la salida esto se maneja así.
Le dejo un espacio pongo A-Z y le pongo aquí comilla simple fecha a esto lo voy a llamar número
factura
Leidi de cliente
y de cliente.
Vamos a darle una interacciãn para tenerlo todo a la vista.
Esto lo vamos a llamar nombre o razón social
y a esto lo vamos a llamar.
Total le damos ejecutar y fíjense cómo las columnas han cambiado por nuestro alias el campo ventas fecha
tiene un alias que se llama fecha y cada campo le puse un alias.
Las tablas también pueden tener alias cuando a veces las tablas tienen nombres largos y queremos hacer
escribir una sentencia muy larga donde vamos a tener que repetir los nombres de las tablas porque a
veces sucede y esto para mí es una mala práctica que algunas algunos desarrollos a los campos los llaman
de una manera con nombres repetidos que esos mismos nombres están en otras tablas.
Por ejemplo yo coloco CLI Hyon bajo aided pero hay gente que en la tabla clientes el primer campo lo
llaman aided y cada tabla tiene un campo ahí.
Entonces luego nos obliga a tener que identificarlo con el nombre de la tabla punto el campo y eso hace
que nosotros terminemos escribiendo además para que ustedes me entiendan lo voy a escribir acá hay gente
que en vez de Leydi de clientes llamarlo así lo llama así entonces tiene una tabla productos y a su
Heydi de producto lo llama así entonces.
Luego no le queda otra que poner Prod
punto añadir o clientes punto Aydin por qué.
Porque si nosotros no le especificamos el campo de qué tabla es el motor va a dar un error da un error
dice.
Hay un dato que es ambiguo usted me está hablando de IDIC pero yo aided lo encuentro tanto en la tabla
cliente como en la tabla productos.
Entonces tenemos que indicarle en la sentencia SELECT A qué tablas nos estamos refiriendo cómo tomó
la determinación hace muchos años de mis campos ponerle el prefijo de la tabla.
Nunca se me repiten nunca tengo que andar poniendo un alias a las tablas pero supongamos Supongamos
que ustedes tuvieran que desarrollar para base de datos ya hechas donde los campos se repiten.
Entonces vamos a ir a nuestra tabla ventas y le vamos a poner un alias que de corta y a clientes que
es una C.
Entonces esto sólo podría prestar de esta manera podría expresar el campo de corta punto.
Fíjense que el Jaydy ya reconoce que la ven representa la tabla ventas.
Entonces me trae ya los campos para que yo le dé ventas directamente y lo mismo va a hacer con la tabla
de clientes me trae los dos campos de clientes.
Bueno ahí tenemos nuestra unión de tablas y nosotros podríamos unir más todavía.
Esto es a nivel cabecera vamos a ver qué pasa a nivel de detalle.
Nosotros tenemos recuerden una tabla que tiene la unión de la cabecera con este campo que me une el
detalle a la cabecera.
Tengo el producto tengo cantidad.
Vamos a hacer algo bastante más completo vamos a mostrar mucho más campos.
Vamos a hacer un Cele perdón Vamos a decirle que nos muestre primero ventas.
El aire de ventas no el número de factura el número de factura ventas fecha ventas.
BD está bien vender el proveedor el producto el código de producto el vamos a poner el artículo
vamos a cambiar de tabla vamos a ver el campo de descripción
pero todo color
pero a medida
no a media asta no lo incluye en el ejemplo
muy bien qué más podemos poner en ventas detalle.
Tenemos más campos tenemos cantidad y precios.
Vamos a poner verde cantidad
de precio ok.
Aquí yo tengo la posibilidad de por lo menos unir tres tablas pero vamos a hacer algo más sofisticado
todavía.
Vamos a poner ventas CLI aided CLI razón social muy bien.
Vamos a la red entera aquí para que ustedes vean qué es lo que vamos a hacer vamos a mostrar por cada
registro el Heydi de cliente.
La razón social el número de factura la fecha de la factura el producto la descripción del producto
el color la cantidad y el precio.
Ahora esto va a hacer que el nombre de clientes se repita en los resultados de salida.
No hay problema lo que no se tiene que repetir es en la tabla no tenemos que grabar repetido el nombre
de cliente ni el Heydi de cliente tenemos que separar cabecera de detalle y tener nuestras tablas maestras.
Eso está muy bien ahora Locks en el resultado de salida podemos cometer todos los atropellos posibles
porque no hay problema podemos repetir el cliente así que no hay problema porque en realidad va a ser
algo que luego lo vamos a exportar o Nextel lo vamos a trabajar vamos a hacer lo que nosotros necesitemos.
Vamos a poner entonces cuántas tablas tenemos tablas clientes ventas ventas detalle.
Y tenemos también productos ok a estos les voy a poner un alias para qué.
Para que el motor me recuerde todos los campos de cada tabla así no pierdo el tiempo para ir a buscarlos
ventas.
Le ponemos así detalle lo ponemos así y productos lo ponemos así y ahora vamos a unir las tablas.
Vamos a arrancar con ventas donde decimos que ventas punto y ahora qué pasa.
Hay algo que no le gustó
pongo el nombre no hay problema qué ventas Clea y Dir. es igual a
no me está atendiendo el tema de la Alianza y cuando uno tablas tengo que usar helando nunca el orden
siempre es una tabla y uno la otra y además ventas detalle punto producto aided es igual a productos
punto a aided y además nos falta unir cabecera y detalle ventas punto ventas Heider es igual a ventas
de tase el campo ventas aided se entiende esto.
Tengo unidas las cuatro tablas la tabla de cabecera de ventas con clientes la tabla de detalle con los
productos y a su vez cabecera y detalle de ventas vamos a ejecutar esto bueno y aquí lo hemos logrado
aquí está la sintaxis correcta el tema es que al usar alias en las tablas estoy obligado a colocar el
alias en los campos.
Fíjense punto c punto me corta punto de la tabla ventas de la tabla detalle la de la P de la tabla productos
y así sucesivamente y las uniones lo mismo si yo ya la tabla ventas la llamo be corta no puedo usar
la palabra ventas punto en las uniones así que aquí tenemos la sentencia correcta.
Fíjense lo que hizo aquí vamos a dar un poquito más de espacio.
Bueno lo necesitamos tenemos nuestra columna Clea y Dir. nuestra razón social la factura la fecha de
factura el código de producto en la descripción y el color del producto la cantidad vendida y el precio
unitario de venta.
Recuerden que todo esto yo también lo puedo formatear le puedo dar alias a las columnas como lo vimos
hace unos minutos para darle una presentación más decorosa y no con los nombres de los campos que queda
feo.
Pero fíjense hemos unido cuatro tablas venta y detalle de factura clientes y hemos unido también a los
productos y yo podría ir más allá y ya que tengo los productos los productos están unidos a los proveedores
entonces yo aquí podría poner que después del precio me diga vamos a poner una erre de proveedor porque
la pesa está usada
Daguerre y vamos a decirle que me muestre por ejemplo el nombre del proveedor y aquí yo tendría que
poner que punto el ideal es igual a E. repuntó provided.
Vamos a correr esto.
Fíjense después de precio me trae los nombres de los proveedores de esos productos.
Estoy uniendo cinco tablas con la Clo con la cláusula Wea.
Esto es increíble lo rápido que ha hecho unir miles de registros porque aquí tenemos 10 mil registros
10 mil 111 registros fíjense que fue a ver cuánto demoró 31 milisegundos en unir 10 mil 111 registros
y no fue 10 mil siendo 11 de una tabla sola tuvo que unir cinco tablas.
Fíjense la potencia de tener unido todo por índices por campos Identity y por Primary X así que esto
es la forma en la que unimos tablas con la columna con la cláusula Wear.
La contra de todo esto por buscarle algo negativo es que si alguna de estas uniones fallara ese registro
no se vería.
La condición para que todo esto funcione para que todos los registros sean mostrados es que todas las
uniones tienen que tener su correspondiente en la tabla que estoy uniendo.
Qué significa que si en la tabla venta yo tengo una idea de producto que cuando lo va a buscar a la
Tabla Productos no lo encuentra.
Ese registro no es mostrado no es incluido.
Entonces me estoy perdiendo de ver una venta que está bien es un producto que se borró por algún problema
por una mala praxis porque hay sistemas que por hoy permiten borrar productos y yo me estoy perdiendo
de ver esa información y a veces no es que un maestro se borró o que un proveedor o un cliente o un
producto se borró.
A veces tengo que unir tablas que puede pasar de que yo ya sé que puede o no estar en la tabla que estoy
uniendo pero hoy yo necesito que se muestren igual los datos a lo sumo que en las columnas de esa tabla
que yo estoy uniendo y no está el registro que me muestre nulo o espacios pero para eso ya no sirve
la cláusula Wer y por eso todo el mundo usa los seis que los vamos a aprender más adelante así que bueno
esto es una alternativa.
Esto es algo más rápido es cuestión de costumbre hay gente que se acostumbró a esto y ya sabe que los
registros así van a estar porque desarrollaron bien el sistema y saben que no va a haber registros borrados
de las tablas maestras así que lo usan con total tranquilidad.
Bueno ahora nos vamos a la próxima clase para seguir aprendiendo más cláusulas de la sentencia Selleck
y de nuestra sentencia Abwehr y vamos a aprender cada vez más este hermoso lenguaje es el lenguaje de
SQL nos vemos en la próxima clase.