SlideShare una empresa de Scribd logo
1 de 64
I C T IAutor: Luis Ortuño Soto
Caso de estudio:
JOINS
I C T IAutor: Luis Ortuño Soto
•Un JOIN se utiliza para consultar datos de más de una tabla
•La condición de JOIN se escribe en la cláusula WHERE.
•Si existen columnas con el mismo nombre en las tablas
seleccionadas, se deberán nombrar los campos
Un join es una operación que relaciona dos o más tablas para
obtener un resultado que incluya datos (campos y registros) de
ambas
I C T IAutor: Luis Ortuño Soto
Tipos de Join’s
I C T IAutor: Luis Ortuño Soto
Tipos de Join’s
Existen dos tipos principales de Join
• Equijoin
• Non-equijoin
• Y dos mas adicionales
• Outer join
• Self join
I C T IAutor: Luis Ortuño Soto
• Cuando se unen más de dos tablas, Oracle
realiza un join a la vez, al inicio con las dos
primeras tablas que encuentra, a partir del
conjunto de datos resultante, se une con la
tercera tabla y así sucesivamente:
• ((A join B) join C) join D …
Marco Teórico
I C T IAutor: Luis Ortuño Soto
• En nuestro caso más común basados en el
esquema de prueba
• Select e.empno, e.ename, e.job, d.dname
From emp e, dept d
Where e.deptno = d.deptno;
Ejemplo de EquiJoin
I C T IAutor: Luis Ortuño Soto
Ejemplo de EquiJoin
• EQUIJOIN Join sobre dos o más tablas, por igualdad de
campos.
• Select emp.empno, emp.ename, emp.deptno,
dept.deptno, dept.loc
From emp,dept
Where emp.deptno = dept.deptno;
• Ya que la columna DEPTNO es igual en ambas tablas
esta debe de ir prefijada por el nombre de la tabla para
evitar ambigüedad
I C T IAutor: Luis Ortuño Soto
• También llamado natural Join, es un caso donde
solo se usan operadores de igualdad para las
condiciones de Join
• Select emp.ename, dept.dname
From emp, dept
Where emp.deptno = dept.deptno
Select emp.ename, dept.dname
From emp
NATURAL JOIN dept on emp.deptno =
dept.deptno
Ejemplo de EquiJoin
I C T IAutor: Luis Ortuño Soto
• Digamos que tenemos las siguientes dos
tablas:
Ejemplo de EquiJoin
I C T IAutor: Luis Ortuño Soto
Ejemplo de EquiJoin
Store_name Sales Txn_date
Los Angeles 1500 05-Jan-1999
San Diego 2500 07-Jan-1999
Los Angeles 3000 08-Jan-1999
Boston 7000 08-Jan-1999
Tabla Store_Information
Region_name Store_name
East Boston
East New York
Wets Los Angeles
West San Diego
Tabla Geography
I C T IAutor: Luis Ortuño Soto
• y queremos saber las ventas por región.
• Al examinar las dos tablas, encontramos que
están enlazadas a través del campo común
“nombre_negocio”
• Entonces la sentencia SQL quedaría de la
siguiente manera:
Ejemplo de EquiJoin
I C T IAutor: Luis Ortuño Soto
• SELECT A1.Region_Name
REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;
• Resultado:
Ejemplo de EquiJoin
Region Sales
East 700
West 2050
I C T IAutor: Luis Ortuño Soto
Ejemplo de Non-Equijoin
• Son un tipo de unión no muy utilizado, que
une dos tablas por una condición diferente a
la de igualdad
• Select e.ename, e.sal, s.grade
From emp e, salgrade s
Where e.sal between s.losal and s.hisal
I C T IAutor: Luis Ortuño Soto
• SELECT
v.nombre, v.apellidos, vi.numero_dias, t.nomb
re
FROM viajero v, viaje vi, tipo_estancia t
WHERE v.id_viajero = vi.id_viajero
AND vi.numero_dias BETWEEN t.dia_desde
AND t.dia_hasta
ORDER BY fecha;
Ejemplo de Non-Equijoin
I C T IAutor: Luis Ortuño Soto
Ejemplo de Outer Join
• Select e.ename, d.deptno, d.dname
From emp e, dept d
Where e.deptno(+) = d.deptno
Order by e.deptno;
• En este ejemplo se muestran los números y
nombres de TODOS los departamentos
incluidos aquellos que no tienen empleados
• Si se añade AND emp.deptno is null, solo se
mostrarán las no coincidencias
I C T IAutor: Luis Ortuño Soto
• ¿Qué sucede en los casos donde estamos
interesados en la selección de elementos en
una tabla sin importar si se encuentran
presentes en la segunda tabla? Ahora
necesitaremos utilizar el comando SQL OUTER
JOIN.
Más ejemplos de Outer Join
I C T IAutor: Luis Ortuño Soto
• Se colocará un "(+)" en la cláusula WHERE del
otro lado de la tabla para la que queremos
incluir todas las filas.
• Ejemplo en la siguiente lamina:
Más ejemplos de Outer Join
I C T IAutor: Luis Ortuño Soto
• SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name (+)
GROUP BY A1.Store_Name;
• Resultado
Más ejemplos de Outer Join
Store_name Sales
Boston 700
New York
Los Angeles 1800
San Diego 250
I C T IAutor: Luis Ortuño Soto
Ejemplo de Self Join
• Select trabajador.ename || ‘ trabaja para ‘ ||
jefe.ename
From emp trabajador emp jefe
Where trabajador.mgr = jefe.empno;
• En este ejemplo la clausula where contiene la
combinación “donde un jefe de un trabajador
coincide con el número de empleado para el
jefe”
I C T IAutor: Luis Ortuño Soto
Vamos a crear un par de tablas
Create table libros(
Codigo number (4),
Titulo varchar2 (40) not null,
Autor varchar2 (30),
Codigoeditorial number (3) not null,
Precio number (5,2),
Primary key (codigo));
I C T IAutor: Luis Ortuño Soto
Y la segunda
Create table editoriales(
Codigo number (3),
Nombre varchar2(20) not null,
Primary key(codigo));
I C T IAutor: Luis Ortuño Soto
Consultando libros
• Select * from libros;
• En el campo editorial aparece el código pero
no sabemos el nombre de la editorial,
necesitamos consultar ambas tablas
I C T IAutor: Luis Ortuño Soto
Hagamos un Join
• Select *
From libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
I C T IAutor: Luis Ortuño Soto
Join
• Un join es una operación que relaciona dos o
más tablas para obtener un resultado que
incluya datos (campos y registros) de ambas;
las tablas participantes se combinan según los
campos comunes a ambas tablas.
I C T IAutor: Luis Ortuño Soto
Hay tres tipos de combinaciones:
1. combinaciones internas (inner join o join),
2. combinaciones externas
3. combinaciones cruzadas.
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select * from libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• especificamos los campos que aparecerán en el
resultado en la lista de selección;
• Indicamos el nombre de la tabla luego del “from”
(“libros”);
• Combinamos esta tabla con “join”y el nombre de
la otra tabla (“editoriales”) se especifica que
tablas se vana a combinar y cómo
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select * from libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• Combinamos esta tabla con “join”y el nombre de
la otra tabla (“editoriales”) se especifica que
tablas se vana a combinar y cómo
• Se debe especificar la condición para
enlazarlas, es decir, el campo por el cual se
combinarán, que tienen en común con “ON”
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select * from libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• En el ejemplo, si no especificamos
"editoriales.codigo" y solamente tipeamos
"codigo", Oracle no sabrá si nos referimos al
campo "codigo" de "libros" o de "editoriales" y
mostrará un mensaje de error indicando que
"codigo" es ambiguo.
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select * from libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• Se puede incluir en la consulta join la cláusula
"where" para restringir los registros que
retorna el resultado; también "order by",
"distinct", etc..
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select * from libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• Se emplea este tipo de combinación para
encontrar registros de la primera tabla que se
correspondan con los registros de la otra, es
decir, que cumplan la condición del "on". Si un
valor de la primera tabla no se encuentra en la
segunda tabla, el registro no aparece; si en la
primera tabla el valor es nulo, tampoco aparece.
I C T IAutor: Luis Ortuño Soto
Analicemos
• Select *
From libros
Join editoriales
On libros.codigoeditorial = editoriales.codigo;
• Select l.codigo, titulo, autor, nombre
From libros l
Join editoriales e
On l.codigoeditorial = e.codigo;
I C T IAutor: Luis Ortuño Soto
• Es aquel en el que se unen dos tablas A y B. En
esta unión se incluyen todos los registros de A
aunque no satisfagan la condición.
• Para hacer esto, se puede usar el Left
Outer Join o el operador (+) en todas las
columnas de B en la parte Where. Ejemplo:
Left Join
I C T IAutor: Luis Ortuño Soto
• Select e.empno, e.ename, e.job, d.dname
From emp e
left outer join dept d
On e.deptno = d.deptno;
• Select e.empno, e.ename, e.job, d.dname
From emp e, dept d
Where e.deptno = d.deptno (+);
Left Join
I C T IAutor: Luis Ortuño Soto
• Si queremos saber qué registros de una tabla NO
encuentran correspondencia en la otra, es
decir, no existe valor coincidente en la
segunda, necesitamos otro tipo de
combinación, "outer join" (combinación externa).
• Las combinaciones externas combinan registros
de dos tablas que cumplen la condición, más los
registros de la segunda tabla que no la cumplen;
es decir, muestran todos los registros de las
tablas relacionadas, aún cuando no haya valores
coincidentes entre ellas.
Left Join
I C T IAutor: Luis Ortuño Soto
• Las combinaciones externas se realizan
solamente entre 2 tablas.
• Hay tres tipos de combinaciones externas:
"left outer join", "right outer join" y "full outer
join"; se pueden abreviar con "left join", "right
join" y "full join" respectivamente.
Left Join
I C T IAutor: Luis Ortuño Soto
• Se emplea una combinación externa izquierda
para mostrar todos los registros de la tabla de la
izquierda. Si no encuentra coincidencia con la
tabla de la derecha, el registro muestra los
campos de la segunda tabla seteados a "null".
• Select titulo,nombre
From editoriales e
left join libros l
On codigoeditorial = e.codigo;
Left Join
I C T IAutor: Luis Ortuño Soto
• Select titulo,nombre
From editoriales e
left join libros l on codigoeditorial = e.codigo;
• El resultado mostrará el título y nombre de la
editorial; las editoriales de las cuales no hay
libros, es decir, cuyo código de editorial no
está presente en "libros" aparece en el
resultado, pero con el valor "null" en el campo
"titulo".
Left Join
I C T IAutor: Luis Ortuño Soto
• Es importante la posición en que se colocan
las tablas en un "left join", la tabla de la
izquierda es la que se usa para localizar
registros en la tabla de la derecha.
• En el siguiente ejemplo solicitamos el título y
el nombre la editorial, la sentencia es similar a
la anterior, la diferencia está en el orden de las
tablas:
Left Join
I C T IAutor: Luis Ortuño Soto
• Select titulo,nombre
From libros l
left join editoriales e
On codigoeditorial = e.codigo;
• El resultado mostrará el título del libro y el
nombre de la editorial; los títulos cuyo código de
editorial no está presente en "editoriales"
aparecen en el resultado, pero con el valor "null"
en el campo "nombre".
Left Join
I C T IAutor: Luis Ortuño Soto
• Un "left join" puede tener clausula "where" que
restringa el resultado de la consulta considerando
solamente los registros que encuentran
coincidencia en la tabla de la derecha, es decir,
cuyo valor de código está presente en "libros":
• select titulo,nombre
From editoriales e
left join libros l
On e.codigo=codigoeditorial
Where codigoeditorial is not null;
Left Join
I C T IAutor: Luis Ortuño Soto
• También podemos mostrar las editoriales que NO
están presentes en "libros", es decir, que NO
encuentran coincidencia en la tabla de la
derecha:
• Select titulo,nombre
From editoriales e
left join libros l
On e.codigo=codigoeditorial
Where codigoeditorial is null;
Left Join
I C T IAutor: Luis Ortuño Soto
• Es aquel en el que se unen dos tablas A y B. En
esta unión se incluyen todos los registros de B
aunque no satisfagan la condición. Para hacer
esto, se puede usar el Right Outer Join o el
operador (+) en todas las columnas de A en la
parte Where. Ejemplo:
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Select e.empno, e.ename, e.job, d.dname
From emp e right
outer join dept d
On e.deptno = d.deptno;
• Select e.empno, e.ename, e.job, d.dname
From emp e, dept d
Where e.deptno (+) = d.deptno;
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Una combinación externa derecha opera del
mismo modo sólo que la tabla derecha es la
que localiza los registros en la tabla izquierda.
• Select titulo,nombre as editorial
From libros l
right join editoriales e
On codigoeditorial = e.codigo;
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Es FUNDAMENTAL tener en cuenta la posición
en que se colocan las tablas en los "outer
join". En un "left join" la primera tabla
(izquierda) es la que busca coincidencias en la
segunda tabla (derecha); en el "right join" la
segunda tabla (derecha) es la que busca
coincidencias en la primera tabla (izquierda).
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• En la siguiente consulta empleamos un "left
join" para conseguir el mismo resultado que el
"right join" anterior":
• Select titulo,nombre
From editoriales e
left join libros l
On codigoeditorial = e.codigo;
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Note que la tabla que busca coincidencias
("editoriales") está en primer lugar porque es
un "left join"; en el "right join" precedente,
estaba en segundo lugar.
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Un "right join" también puede tener cláusula
"where" que restringa el resultado de la consulta
considerando solamente los registros que
encuentran coincidencia en la tabla izquierda:
• Select titulo,nombre
From libros l
right join editoriales e
On e.codigo=codigoeditorial
Where codigoeditorial is not null;
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Mostramos las editoriales que NO están
presentes en "libros", es decir, que NO
encuentran coincidencia en la tabla de la derecha
empleando un "right join":
• Select titulo,nombre
From libros l
right join editoriales e
On e.codigo=codigoeditorial
Where codigoeditorial is null;
right outer join o right join
I C T IAutor: Luis Ortuño Soto
• Finalmente, este join es la combinación del
right outer join y el left outer join;
mostrándonos la información de ambas tablas
unidas A y B no importando que haya registros
que no satisfagan la condición. Para realizar
esto, se usa la cláusula Full Outer Join o
un Union con los dos querys del
operador (+) como se puede apreciar en los
ejemplos siguientes:
full outer join o full join
I C T IAutor: Luis Ortuño Soto
• Select e.empno, e.ename, e.job, d.dname
From emp e full outer join dept d
On e.deptno = d.deptno;
• Select e.empno, e.ename, e.job, d.dname
From emp e, dept d
Where e.deptno (+) = deptno
Union
Select e.empno, e.ename, e.job, d.dname
From emp e, dept d
Where e.deptno = d.deptno (+);
full outer join o full join
I C T IAutor: Luis Ortuño Soto
• Una combinación externa completa retorna
todos los registros de ambas tablas. Si un
registro de una tabla izquierda no encuentra
coincidencia en la tabla derecha, las columnas
correspondientes a campos de la tabla
derecha aparecen seteadas a "null", y si la
tabla de la derecha no encuentra
correspondencia en la tabla izquierda, los
campos de esta última aparecen conteniendo
"null".
full outer join o full join
I C T IAutor: Luis Ortuño Soto
• Select titulo,nombre
From editoriales e
full join libros l
On codigoeditorial = e.codigo;
• La salida del "full join" precedente muestra todos
los registros de ambas tablas, incluyendo los
libros cuyo código de editorial no existe en la
tabla "editoriales" y las editoriales de las cuales
no hay correspondencia en "libros".
full outer join o full join
I C T IAutor: Luis Ortuño Soto
• Las combinaciones cruzadas muestran todas
las combinaciones de todos los registros de las
tablas combinadas. Para este tipo de join no
se incluye una condición de enlace. Se genera
el producto cartesiano en el que el número de
filas del resultado es igual al número de
registros de la primera tabla multiplicado por
el número de registros de la segunda tabla, es
decir, si hay 3 registros en una tabla y 4 en la
otra, retorna 12 filas.
cross join
I C T IAutor: Luis Ortuño Soto
• Select c.nombre as "plato
principal", p.nombre as "postre"
From comidas c cross join postres p;
• Este tipo de join no es muy utilizado.
cross join
I C T IAutor: Luis Ortuño Soto
• Es un join de una tabla consigo misma. Se
realiza de manera similar a un join normal; la
diferencia sustancial, reside en que será
comparada y unida por algún campo de la
misma tabla. Un ejemplo claro de esto, es
cuando se quiere mostrar el jefe de cada
empleado en nuestra tabla emp
Self Join
I C T IAutor: Luis Ortuño Soto
• Select
emp.empno, emp.ename, emp.job, mgr.enam
e, mgr.job
From emp emp, emp mgr
Where emp.mgr = mgr.empno;
Self Join
I C T IAutor: Luis Ortuño Soto
• Un pequeño restaurante tiene almacenadas
sus comidas en una tabla llamada "comidas"
que consta de los siguientes campos:
• nombre varchar(20),
• precio decimal (4,2) y
• rubro char(6) -- que indica con 'plato' si es un
plato principal y 'postre' si es postre
Self Join
I C T IAutor: Luis Ortuño Soto
• Podemos obtener la combinación de todos los
platos empleando un "cross join" con una sola
tabla:
• Select c1.nombre, c2.nombre,
c1.precio+c2.precio as total
From comidas c1
Cross join comidas c2;
Self Join
I C T IAutor: Luis Ortuño Soto
• En la consulta anterior aparecerán filas
duplicadas, para evitarlo debemos emplear un
"where":
• select c1.nombre as "plato principal", c2.nombre
as postre, c1.precio+c2.precio as total
From comidas c1
Cross join comidas c2
Where c1.rubro='plato' and c2.rubro='postre';
Self Join
I C T IAutor: Luis Ortuño Soto
• También se puede realizar una autocombinación
con "join":
• select c1.nombre as "plato principal", c2.nombre
as postre, c1.precio+c2.precio as total
From comidas c1 join comidas c2
On c1.codigo<>c2.codigo where c1.rubro='plato'
and c2.rubro='postre';
Self Join
I C T IAutor: Luis Ortuño Soto
• Para resumir hemos llamado T1 y T2 las tablas de
las que queremos sacar los datos y R la tabla
lógica que representa el resultado de consulta. T1
y T2 podrían ser tablas guardadas o consultas.
• En la última parte cuando se pregunta "En T1 hay
filas que no tienen pareja en T2", la pregunta se
debe de interpretar como "en alguna de las
tablas hay filas que no tienen pareja".
Conclusiones
I C T IAutor: Luis Ortuño Soto
Conclusiones
I C T IAutor: Luis Ortuño Soto
• Los Joins son muy útiles para traer
información de dos o más tablas y poder
combinar la información que reside en ellas.
Un abuso o mal uso de ellos sin
embargo, puede causar dolores serios de
cabeza. Para saber si estamos haciendo o no
un buen query, requerimos acudir a nuestro
plan de ejecución y/o algún trace para saber si
realmente, es correcto lo que estamos
construyendo.
Conclusiones

Más contenido relacionado

La actualidad más candente

INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
Structured query language(sql)ppt
Structured query language(sql)pptStructured query language(sql)ppt
Structured query language(sql)pptGowarthini
 
Sql comandos
Sql comandosSql comandos
Sql comandosJose
 
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...JOSE AHIAS LOPEZ PORTILLO
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL CommandsShrija Madhu
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Lecture 4 sql {basics keys and constraints}
Lecture 4 sql {basics  keys and constraints}Lecture 4 sql {basics  keys and constraints}
Lecture 4 sql {basics keys and constraints}Shubham Shukla
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQLRonald Rivas
 
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del añoInforme v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del añoJuan Polo Cosme
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 

La actualidad más candente (20)

Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
DATABASE CONSTRAINTS
DATABASE CONSTRAINTSDATABASE CONSTRAINTS
DATABASE CONSTRAINTS
 
2.0 sql data types for my sql, sql server
2.0 sql data types for my sql, sql server2.0 sql data types for my sql, sql server
2.0 sql data types for my sql, sql server
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
1.2 sql create and drop table
1.2 sql create and drop table1.2 sql create and drop table
1.2 sql create and drop table
 
DML Commands
DML CommandsDML Commands
DML Commands
 
Structured query language(sql)ppt
Structured query language(sql)pptStructured query language(sql)ppt
Structured query language(sql)ppt
 
Sql comandos
Sql comandosSql comandos
Sql comandos
 
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...Fundamentos microsoft sql server (T-Sql)  (Parte I) – conceptos básicos sql e...
Fundamentos microsoft sql server (T-Sql) (Parte I) – conceptos básicos sql e...
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL Commands
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Mysql
MysqlMysql
Mysql
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Lecture 4 sql {basics keys and constraints}
Lecture 4 sql {basics  keys and constraints}Lecture 4 sql {basics  keys and constraints}
Lecture 4 sql {basics keys and constraints}
 
Types of keys dbms
Types of keys dbmsTypes of keys dbms
Types of keys dbms
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del añoInforme v2.1  Base de Datos II - Proyecto TodoAutos : venta de carros del año
Informe v2.1 Base de Datos II - Proyecto TodoAutos : venta de carros del año
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 

Destacado

Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2Martink137
 
Nurse Center ExpoAllianz
Nurse Center ExpoAllianzNurse Center ExpoAllianz
Nurse Center ExpoAllianzExpoAllianz
 
Gestión Supervisión_ Innovaciones.
Gestión Supervisión_ Innovaciones.Gestión Supervisión_ Innovaciones.
Gestión Supervisión_ Innovaciones.Juanjosé Guerrero
 
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...ponencias_mihealth2012
 
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASIntroducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASJulián Castiblanco
 
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTETaller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTEJulián Castiblanco
 
Seguridad del paciente y atencion de enfermeria en el bloque quirurgico
Seguridad del paciente y atencion de enfermeria en el bloque quirurgicoSeguridad del paciente y atencion de enfermeria en el bloque quirurgico
Seguridad del paciente y atencion de enfermeria en el bloque quirurgicoPlan de Calidad para el SNS
 
Ejemplo De DefinicióN De Cartera De Servicios
Ejemplo De DefinicióN De Cartera De ServiciosEjemplo De DefinicióN De Cartera De Servicios
Ejemplo De DefinicióN De Cartera De ServiciosJulio Nuñez
 

Destacado (20)

Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2
 
Curso SQL - Leccion 7
Curso SQL - Leccion 7  Curso SQL - Leccion 7
Curso SQL - Leccion 7
 
Identificación inequivoca de paciente
Identificación inequivoca de pacienteIdentificación inequivoca de paciente
Identificación inequivoca de paciente
 
Nurse Center ExpoAllianz
Nurse Center ExpoAllianzNurse Center ExpoAllianz
Nurse Center ExpoAllianz
 
Gestión Supervisión_ Innovaciones.
Gestión Supervisión_ Innovaciones.Gestión Supervisión_ Innovaciones.
Gestión Supervisión_ Innovaciones.
 
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...
Borras, Xavier - Movilidad de la información clínica. La experiencia del Hosp...
 
Metodología de cuidados de enfermería
Metodología de cuidados de enfermeríaMetodología de cuidados de enfermería
Metodología de cuidados de enfermería
 
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASIntroducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
 
Taller de sql server no 3
Taller de sql server no 3Taller de sql server no 3
Taller de sql server no 3
 
Tarea dqs en ssis nunca termina
Tarea dqs en ssis nunca terminaTarea dqs en ssis nunca termina
Tarea dqs en ssis nunca termina
 
Tutorial procedure sqlserver2008.docx
Tutorial procedure sqlserver2008.docxTutorial procedure sqlserver2008.docx
Tutorial procedure sqlserver2008.docx
 
Join
JoinJoin
Join
 
Join
JoinJoin
Join
 
Joins
JoinsJoins
Joins
 
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTETaller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
 
Cartera de Servicios de Enfermería en ATENCIÓN PRIMARIA
Cartera de Servicios de Enfermería en ATENCIÓN PRIMARIACartera de Servicios de Enfermería en ATENCIÓN PRIMARIA
Cartera de Servicios de Enfermería en ATENCIÓN PRIMARIA
 
Seguridad del paciente y atencion de enfermeria en el bloque quirurgico
Seguridad del paciente y atencion de enfermeria en el bloque quirurgicoSeguridad del paciente y atencion de enfermeria en el bloque quirurgico
Seguridad del paciente y atencion de enfermeria en el bloque quirurgico
 
Agrupando datos en SQL Server
Agrupando datos en SQL ServerAgrupando datos en SQL Server
Agrupando datos en SQL Server
 
Ejemplo De DefinicióN De Cartera De Servicios
Ejemplo De DefinicióN De Cartera De ServiciosEjemplo De DefinicióN De Cartera De Servicios
Ejemplo De DefinicióN De Cartera De Servicios
 

Similar a JOIN entre tablas LIBROS y EDITORIALES

Los inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcLos inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcGiovanna Miramontes
 
Tablas dinámicas filtros
Tablas  dinámicas filtros Tablas  dinámicas filtros
Tablas dinámicas filtros Jessica Caro
 
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3Alexis Chavez
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datosDILMER OLIVERA
 
Herramientas de access
Herramientas de accessHerramientas de access
Herramientas de accessRobert Usma
 
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...José Ricardo Tillero Giménez
 
Presentacion Microsoft Excel - Parte 1
Presentacion Microsoft Excel - Parte 1Presentacion Microsoft Excel - Parte 1
Presentacion Microsoft Excel - Parte 1Roberto Muñoz Soto
 
Operadores y formulas en excel
Operadores y formulas en excelOperadores y formulas en excel
Operadores y formulas en excelCatherAlexander
 
Operadores y formulas en exce
Operadores y formulas en exceOperadores y formulas en exce
Operadores y formulas en exceCatherAlexander
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Tisc 2-expocicion (1)
Tisc 2-expocicion (1)Tisc 2-expocicion (1)
Tisc 2-expocicion (1)Paul Yungan
 
Grupo N°3 - Loachamin Cristian y Yungán Cristian
Grupo N°3 - Loachamin Cristian y Yungán Cristian Grupo N°3 - Loachamin Cristian y Yungán Cristian
Grupo N°3 - Loachamin Cristian y Yungán Cristian patricia gallardo
 

Similar a JOIN entre tablas LIBROS y EDITORIALES (20)

Los inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcLos inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bc
 
Join
JoinJoin
Join
 
Tablas dinámicas filtros
Tablas  dinámicas filtros Tablas  dinámicas filtros
Tablas dinámicas filtros
 
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3
Tisc 2-expocicion1 hugp calderon alexis chavez grupo 3
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 
Herramientas de access
Herramientas de accessHerramientas de access
Herramientas de access
 
Clase #2 de access
Clase #2 de accessClase #2 de access
Clase #2 de access
 
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
 
Access 2007
Access 2007Access 2007
Access 2007
 
Presentacion Microsoft Excel - Parte 1
Presentacion Microsoft Excel - Parte 1Presentacion Microsoft Excel - Parte 1
Presentacion Microsoft Excel - Parte 1
 
Presentacion Excel 2
Presentacion Excel   2Presentacion Excel   2
Presentacion Excel 2
 
Operadores y formulas en excel
Operadores y formulas en excelOperadores y formulas en excel
Operadores y formulas en excel
 
Operadores y formulas en exce
Operadores y formulas en exceOperadores y formulas en exce
Operadores y formulas en exce
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Filtros
FiltrosFiltros
Filtros
 
Tisc 2-expocicion (1)
Tisc 2-expocicion (1)Tisc 2-expocicion (1)
Tisc 2-expocicion (1)
 
Grupo N°3 - Loachamin Cristian y Yungán Cristian
Grupo N°3 - Loachamin Cristian y Yungán Cristian Grupo N°3 - Loachamin Cristian y Yungán Cristian
Grupo N°3 - Loachamin Cristian y Yungán Cristian
 
Como crear tablas de access 2010
Como crear tablas de access 2010 Como crear tablas de access 2010
Como crear tablas de access 2010
 
Tablas y tipos de datos
Tablas y tipos de datosTablas y tipos de datos
Tablas y tipos de datos
 

Último

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 

Último (20)

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 

JOIN entre tablas LIBROS y EDITORIALES

  • 1. I C T IAutor: Luis Ortuño Soto Caso de estudio: JOINS
  • 2. I C T IAutor: Luis Ortuño Soto •Un JOIN se utiliza para consultar datos de más de una tabla •La condición de JOIN se escribe en la cláusula WHERE. •Si existen columnas con el mismo nombre en las tablas seleccionadas, se deberán nombrar los campos Un join es una operación que relaciona dos o más tablas para obtener un resultado que incluya datos (campos y registros) de ambas
  • 3. I C T IAutor: Luis Ortuño Soto Tipos de Join’s
  • 4. I C T IAutor: Luis Ortuño Soto Tipos de Join’s Existen dos tipos principales de Join • Equijoin • Non-equijoin • Y dos mas adicionales • Outer join • Self join
  • 5. I C T IAutor: Luis Ortuño Soto • Cuando se unen más de dos tablas, Oracle realiza un join a la vez, al inicio con las dos primeras tablas que encuentra, a partir del conjunto de datos resultante, se une con la tercera tabla y así sucesivamente: • ((A join B) join C) join D … Marco Teórico
  • 6. I C T IAutor: Luis Ortuño Soto • En nuestro caso más común basados en el esquema de prueba • Select e.empno, e.ename, e.job, d.dname From emp e, dept d Where e.deptno = d.deptno; Ejemplo de EquiJoin
  • 7. I C T IAutor: Luis Ortuño Soto Ejemplo de EquiJoin • EQUIJOIN Join sobre dos o más tablas, por igualdad de campos. • Select emp.empno, emp.ename, emp.deptno, dept.deptno, dept.loc From emp,dept Where emp.deptno = dept.deptno; • Ya que la columna DEPTNO es igual en ambas tablas esta debe de ir prefijada por el nombre de la tabla para evitar ambigüedad
  • 8. I C T IAutor: Luis Ortuño Soto • También llamado natural Join, es un caso donde solo se usan operadores de igualdad para las condiciones de Join • Select emp.ename, dept.dname From emp, dept Where emp.deptno = dept.deptno Select emp.ename, dept.dname From emp NATURAL JOIN dept on emp.deptno = dept.deptno Ejemplo de EquiJoin
  • 9. I C T IAutor: Luis Ortuño Soto • Digamos que tenemos las siguientes dos tablas: Ejemplo de EquiJoin
  • 10. I C T IAutor: Luis Ortuño Soto Ejemplo de EquiJoin Store_name Sales Txn_date Los Angeles 1500 05-Jan-1999 San Diego 2500 07-Jan-1999 Los Angeles 3000 08-Jan-1999 Boston 7000 08-Jan-1999 Tabla Store_Information Region_name Store_name East Boston East New York Wets Los Angeles West San Diego Tabla Geography
  • 11. I C T IAutor: Luis Ortuño Soto • y queremos saber las ventas por región. • Al examinar las dos tablas, encontramos que están enlazadas a través del campo común “nombre_negocio” • Entonces la sentencia SQL quedaría de la siguiente manera: Ejemplo de EquiJoin
  • 12. I C T IAutor: Luis Ortuño Soto • SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name GROUP BY A1.Region_Name; • Resultado: Ejemplo de EquiJoin Region Sales East 700 West 2050
  • 13. I C T IAutor: Luis Ortuño Soto Ejemplo de Non-Equijoin • Son un tipo de unión no muy utilizado, que une dos tablas por una condición diferente a la de igualdad • Select e.ename, e.sal, s.grade From emp e, salgrade s Where e.sal between s.losal and s.hisal
  • 14. I C T IAutor: Luis Ortuño Soto • SELECT v.nombre, v.apellidos, vi.numero_dias, t.nomb re FROM viajero v, viaje vi, tipo_estancia t WHERE v.id_viajero = vi.id_viajero AND vi.numero_dias BETWEEN t.dia_desde AND t.dia_hasta ORDER BY fecha; Ejemplo de Non-Equijoin
  • 15. I C T IAutor: Luis Ortuño Soto Ejemplo de Outer Join • Select e.ename, d.deptno, d.dname From emp e, dept d Where e.deptno(+) = d.deptno Order by e.deptno; • En este ejemplo se muestran los números y nombres de TODOS los departamentos incluidos aquellos que no tienen empleados • Si se añade AND emp.deptno is null, solo se mostrarán las no coincidencias
  • 16. I C T IAutor: Luis Ortuño Soto • ¿Qué sucede en los casos donde estamos interesados en la selección de elementos en una tabla sin importar si se encuentran presentes en la segunda tabla? Ahora necesitaremos utilizar el comando SQL OUTER JOIN. Más ejemplos de Outer Join
  • 17. I C T IAutor: Luis Ortuño Soto • Se colocará un "(+)" en la cláusula WHERE del otro lado de la tabla para la que queremos incluir todas las filas. • Ejemplo en la siguiente lamina: Más ejemplos de Outer Join
  • 18. I C T IAutor: Luis Ortuño Soto • SELECT A1.Store_Name, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name (+) GROUP BY A1.Store_Name; • Resultado Más ejemplos de Outer Join Store_name Sales Boston 700 New York Los Angeles 1800 San Diego 250
  • 19. I C T IAutor: Luis Ortuño Soto Ejemplo de Self Join • Select trabajador.ename || ‘ trabaja para ‘ || jefe.ename From emp trabajador emp jefe Where trabajador.mgr = jefe.empno; • En este ejemplo la clausula where contiene la combinación “donde un jefe de un trabajador coincide con el número de empleado para el jefe”
  • 20. I C T IAutor: Luis Ortuño Soto Vamos a crear un par de tablas Create table libros( Codigo number (4), Titulo varchar2 (40) not null, Autor varchar2 (30), Codigoeditorial number (3) not null, Precio number (5,2), Primary key (codigo));
  • 21. I C T IAutor: Luis Ortuño Soto Y la segunda Create table editoriales( Codigo number (3), Nombre varchar2(20) not null, Primary key(codigo));
  • 22. I C T IAutor: Luis Ortuño Soto Consultando libros • Select * from libros; • En el campo editorial aparece el código pero no sabemos el nombre de la editorial, necesitamos consultar ambas tablas
  • 23. I C T IAutor: Luis Ortuño Soto Hagamos un Join • Select * From libros Join editoriales On libros.codigoeditorial = editoriales.codigo;
  • 24. I C T IAutor: Luis Ortuño Soto Join • Un join es una operación que relaciona dos o más tablas para obtener un resultado que incluya datos (campos y registros) de ambas; las tablas participantes se combinan según los campos comunes a ambas tablas.
  • 25. I C T IAutor: Luis Ortuño Soto Hay tres tipos de combinaciones: 1. combinaciones internas (inner join o join), 2. combinaciones externas 3. combinaciones cruzadas.
  • 26. I C T IAutor: Luis Ortuño Soto Analicemos • Select * from libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • especificamos los campos que aparecerán en el resultado en la lista de selección; • Indicamos el nombre de la tabla luego del “from” (“libros”); • Combinamos esta tabla con “join”y el nombre de la otra tabla (“editoriales”) se especifica que tablas se vana a combinar y cómo
  • 27. I C T IAutor: Luis Ortuño Soto Analicemos • Select * from libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • Combinamos esta tabla con “join”y el nombre de la otra tabla (“editoriales”) se especifica que tablas se vana a combinar y cómo • Se debe especificar la condición para enlazarlas, es decir, el campo por el cual se combinarán, que tienen en común con “ON”
  • 28. I C T IAutor: Luis Ortuño Soto Analicemos • Select * from libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • En el ejemplo, si no especificamos "editoriales.codigo" y solamente tipeamos "codigo", Oracle no sabrá si nos referimos al campo "codigo" de "libros" o de "editoriales" y mostrará un mensaje de error indicando que "codigo" es ambiguo.
  • 29. I C T IAutor: Luis Ortuño Soto Analicemos • Select * from libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • Se puede incluir en la consulta join la cláusula "where" para restringir los registros que retorna el resultado; también "order by", "distinct", etc..
  • 30. I C T IAutor: Luis Ortuño Soto Analicemos • Select * from libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • Se emplea este tipo de combinación para encontrar registros de la primera tabla que se correspondan con los registros de la otra, es decir, que cumplan la condición del "on". Si un valor de la primera tabla no se encuentra en la segunda tabla, el registro no aparece; si en la primera tabla el valor es nulo, tampoco aparece.
  • 31. I C T IAutor: Luis Ortuño Soto Analicemos • Select * From libros Join editoriales On libros.codigoeditorial = editoriales.codigo; • Select l.codigo, titulo, autor, nombre From libros l Join editoriales e On l.codigoeditorial = e.codigo;
  • 32. I C T IAutor: Luis Ortuño Soto • Es aquel en el que se unen dos tablas A y B. En esta unión se incluyen todos los registros de A aunque no satisfagan la condición. • Para hacer esto, se puede usar el Left Outer Join o el operador (+) en todas las columnas de B en la parte Where. Ejemplo: Left Join
  • 33. I C T IAutor: Luis Ortuño Soto • Select e.empno, e.ename, e.job, d.dname From emp e left outer join dept d On e.deptno = d.deptno; • Select e.empno, e.ename, e.job, d.dname From emp e, dept d Where e.deptno = d.deptno (+); Left Join
  • 34. I C T IAutor: Luis Ortuño Soto • Si queremos saber qué registros de una tabla NO encuentran correspondencia en la otra, es decir, no existe valor coincidente en la segunda, necesitamos otro tipo de combinación, "outer join" (combinación externa). • Las combinaciones externas combinan registros de dos tablas que cumplen la condición, más los registros de la segunda tabla que no la cumplen; es decir, muestran todos los registros de las tablas relacionadas, aún cuando no haya valores coincidentes entre ellas. Left Join
  • 35. I C T IAutor: Luis Ortuño Soto • Las combinaciones externas se realizan solamente entre 2 tablas. • Hay tres tipos de combinaciones externas: "left outer join", "right outer join" y "full outer join"; se pueden abreviar con "left join", "right join" y "full join" respectivamente. Left Join
  • 36. I C T IAutor: Luis Ortuño Soto • Se emplea una combinación externa izquierda para mostrar todos los registros de la tabla de la izquierda. Si no encuentra coincidencia con la tabla de la derecha, el registro muestra los campos de la segunda tabla seteados a "null". • Select titulo,nombre From editoriales e left join libros l On codigoeditorial = e.codigo; Left Join
  • 37. I C T IAutor: Luis Ortuño Soto • Select titulo,nombre From editoriales e left join libros l on codigoeditorial = e.codigo; • El resultado mostrará el título y nombre de la editorial; las editoriales de las cuales no hay libros, es decir, cuyo código de editorial no está presente en "libros" aparece en el resultado, pero con el valor "null" en el campo "titulo". Left Join
  • 38. I C T IAutor: Luis Ortuño Soto • Es importante la posición en que se colocan las tablas en un "left join", la tabla de la izquierda es la que se usa para localizar registros en la tabla de la derecha. • En el siguiente ejemplo solicitamos el título y el nombre la editorial, la sentencia es similar a la anterior, la diferencia está en el orden de las tablas: Left Join
  • 39. I C T IAutor: Luis Ortuño Soto • Select titulo,nombre From libros l left join editoriales e On codigoeditorial = e.codigo; • El resultado mostrará el título del libro y el nombre de la editorial; los títulos cuyo código de editorial no está presente en "editoriales" aparecen en el resultado, pero con el valor "null" en el campo "nombre". Left Join
  • 40. I C T IAutor: Luis Ortuño Soto • Un "left join" puede tener clausula "where" que restringa el resultado de la consulta considerando solamente los registros que encuentran coincidencia en la tabla de la derecha, es decir, cuyo valor de código está presente en "libros": • select titulo,nombre From editoriales e left join libros l On e.codigo=codigoeditorial Where codigoeditorial is not null; Left Join
  • 41. I C T IAutor: Luis Ortuño Soto • También podemos mostrar las editoriales que NO están presentes en "libros", es decir, que NO encuentran coincidencia en la tabla de la derecha: • Select titulo,nombre From editoriales e left join libros l On e.codigo=codigoeditorial Where codigoeditorial is null; Left Join
  • 42. I C T IAutor: Luis Ortuño Soto • Es aquel en el que se unen dos tablas A y B. En esta unión se incluyen todos los registros de B aunque no satisfagan la condición. Para hacer esto, se puede usar el Right Outer Join o el operador (+) en todas las columnas de A en la parte Where. Ejemplo: right outer join o right join
  • 43. I C T IAutor: Luis Ortuño Soto • Select e.empno, e.ename, e.job, d.dname From emp e right outer join dept d On e.deptno = d.deptno; • Select e.empno, e.ename, e.job, d.dname From emp e, dept d Where e.deptno (+) = d.deptno; right outer join o right join
  • 44. I C T IAutor: Luis Ortuño Soto • Una combinación externa derecha opera del mismo modo sólo que la tabla derecha es la que localiza los registros en la tabla izquierda. • Select titulo,nombre as editorial From libros l right join editoriales e On codigoeditorial = e.codigo; right outer join o right join
  • 45. I C T IAutor: Luis Ortuño Soto • Es FUNDAMENTAL tener en cuenta la posición en que se colocan las tablas en los "outer join". En un "left join" la primera tabla (izquierda) es la que busca coincidencias en la segunda tabla (derecha); en el "right join" la segunda tabla (derecha) es la que busca coincidencias en la primera tabla (izquierda). right outer join o right join
  • 46. I C T IAutor: Luis Ortuño Soto • En la siguiente consulta empleamos un "left join" para conseguir el mismo resultado que el "right join" anterior": • Select titulo,nombre From editoriales e left join libros l On codigoeditorial = e.codigo; right outer join o right join
  • 47. I C T IAutor: Luis Ortuño Soto • Note que la tabla que busca coincidencias ("editoriales") está en primer lugar porque es un "left join"; en el "right join" precedente, estaba en segundo lugar. right outer join o right join
  • 48. I C T IAutor: Luis Ortuño Soto • Un "right join" también puede tener cláusula "where" que restringa el resultado de la consulta considerando solamente los registros que encuentran coincidencia en la tabla izquierda: • Select titulo,nombre From libros l right join editoriales e On e.codigo=codigoeditorial Where codigoeditorial is not null; right outer join o right join
  • 49. I C T IAutor: Luis Ortuño Soto • Mostramos las editoriales que NO están presentes en "libros", es decir, que NO encuentran coincidencia en la tabla de la derecha empleando un "right join": • Select titulo,nombre From libros l right join editoriales e On e.codigo=codigoeditorial Where codigoeditorial is null; right outer join o right join
  • 50. I C T IAutor: Luis Ortuño Soto • Finalmente, este join es la combinación del right outer join y el left outer join; mostrándonos la información de ambas tablas unidas A y B no importando que haya registros que no satisfagan la condición. Para realizar esto, se usa la cláusula Full Outer Join o un Union con los dos querys del operador (+) como se puede apreciar en los ejemplos siguientes: full outer join o full join
  • 51. I C T IAutor: Luis Ortuño Soto • Select e.empno, e.ename, e.job, d.dname From emp e full outer join dept d On e.deptno = d.deptno; • Select e.empno, e.ename, e.job, d.dname From emp e, dept d Where e.deptno (+) = deptno Union Select e.empno, e.ename, e.job, d.dname From emp e, dept d Where e.deptno = d.deptno (+); full outer join o full join
  • 52. I C T IAutor: Luis Ortuño Soto • Una combinación externa completa retorna todos los registros de ambas tablas. Si un registro de una tabla izquierda no encuentra coincidencia en la tabla derecha, las columnas correspondientes a campos de la tabla derecha aparecen seteadas a "null", y si la tabla de la derecha no encuentra correspondencia en la tabla izquierda, los campos de esta última aparecen conteniendo "null". full outer join o full join
  • 53. I C T IAutor: Luis Ortuño Soto • Select titulo,nombre From editoriales e full join libros l On codigoeditorial = e.codigo; • La salida del "full join" precedente muestra todos los registros de ambas tablas, incluyendo los libros cuyo código de editorial no existe en la tabla "editoriales" y las editoriales de las cuales no hay correspondencia en "libros". full outer join o full join
  • 54. I C T IAutor: Luis Ortuño Soto • Las combinaciones cruzadas muestran todas las combinaciones de todos los registros de las tablas combinadas. Para este tipo de join no se incluye una condición de enlace. Se genera el producto cartesiano en el que el número de filas del resultado es igual al número de registros de la primera tabla multiplicado por el número de registros de la segunda tabla, es decir, si hay 3 registros en una tabla y 4 en la otra, retorna 12 filas. cross join
  • 55. I C T IAutor: Luis Ortuño Soto • Select c.nombre as "plato principal", p.nombre as "postre" From comidas c cross join postres p; • Este tipo de join no es muy utilizado. cross join
  • 56. I C T IAutor: Luis Ortuño Soto • Es un join de una tabla consigo misma. Se realiza de manera similar a un join normal; la diferencia sustancial, reside en que será comparada y unida por algún campo de la misma tabla. Un ejemplo claro de esto, es cuando se quiere mostrar el jefe de cada empleado en nuestra tabla emp Self Join
  • 57. I C T IAutor: Luis Ortuño Soto • Select emp.empno, emp.ename, emp.job, mgr.enam e, mgr.job From emp emp, emp mgr Where emp.mgr = mgr.empno; Self Join
  • 58. I C T IAutor: Luis Ortuño Soto • Un pequeño restaurante tiene almacenadas sus comidas en una tabla llamada "comidas" que consta de los siguientes campos: • nombre varchar(20), • precio decimal (4,2) y • rubro char(6) -- que indica con 'plato' si es un plato principal y 'postre' si es postre Self Join
  • 59. I C T IAutor: Luis Ortuño Soto • Podemos obtener la combinación de todos los platos empleando un "cross join" con una sola tabla: • Select c1.nombre, c2.nombre, c1.precio+c2.precio as total From comidas c1 Cross join comidas c2; Self Join
  • 60. I C T IAutor: Luis Ortuño Soto • En la consulta anterior aparecerán filas duplicadas, para evitarlo debemos emplear un "where": • select c1.nombre as "plato principal", c2.nombre as postre, c1.precio+c2.precio as total From comidas c1 Cross join comidas c2 Where c1.rubro='plato' and c2.rubro='postre'; Self Join
  • 61. I C T IAutor: Luis Ortuño Soto • También se puede realizar una autocombinación con "join": • select c1.nombre as "plato principal", c2.nombre as postre, c1.precio+c2.precio as total From comidas c1 join comidas c2 On c1.codigo<>c2.codigo where c1.rubro='plato' and c2.rubro='postre'; Self Join
  • 62. I C T IAutor: Luis Ortuño Soto • Para resumir hemos llamado T1 y T2 las tablas de las que queremos sacar los datos y R la tabla lógica que representa el resultado de consulta. T1 y T2 podrían ser tablas guardadas o consultas. • En la última parte cuando se pregunta "En T1 hay filas que no tienen pareja en T2", la pregunta se debe de interpretar como "en alguna de las tablas hay filas que no tienen pareja". Conclusiones
  • 63. I C T IAutor: Luis Ortuño Soto Conclusiones
  • 64. I C T IAutor: Luis Ortuño Soto • Los Joins son muy útiles para traer información de dos o más tablas y poder combinar la información que reside en ellas. Un abuso o mal uso de ellos sin embargo, puede causar dolores serios de cabeza. Para saber si estamos haciendo o no un buen query, requerimos acudir a nuestro plan de ejecución y/o algún trace para saber si realmente, es correcto lo que estamos construyendo. Conclusiones