Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Union - UnionAllSQL Avanzado DML
Union - UnionAllSQL Avanzado DML
Base de Datos
Prof. Nelliud D. Torres
SQL - Avanzado DML
DIRECTIVA SELECT
CONTENIDO
UNIN DE DOS O MS
TABLAS
CROSS JOIN
Ejemplos de Left, Right y Full Join
HACIENDO JOIN CON IN Y
CONCEPTOS AVANZADOS
EXITS
MISCELNEOS
UNIENDO MLTIPLES
SELF JOIN
TABLAS
PRODUCT
RELATIONAL SET
OPERATORS
SQL PLUS
UNION
UNION ALL
INTERSECT
MINUS
JOIN OPERATORS
INNER JOIN (Natural)
OUTER JOIN
Left Outer Join
FUNCIONES DE SQL
VIEWS
EJERCICIOS DE PRCTICA
Volver a
los
Objetivos
Pag: 340
Figure 8-2 El resultado que se obtiene al buscar entre las cuatro tablas
De la tabla CUSTOMER_T
De la tabla ORDER_T
De la tabla PRODUCT_T
Pag: 340
Volver a
los
Objetivos
Pag: 341
Pag: 343
Comparacin IN y EXITS
Volver a
los
Objetivos
Ejemplo
Volver a
los
Objetivos
SET OPERATIONS
SET OPERATIONS - Se utilizan para fomar la
unin (union), interseccin, (intersection) o
diferencias (differences ) de dos tablas.
UNION Une dos tablas que contienen cada
fila que est en la primera tabla, en la segunda
tabla o en ambas. No duplica aquellas filas
que se encuentren en ambas tablas.
SET OPERATIONS
INTERSECT Muestra todas las filas que
se duplican en ambas tablas nicamente.
MINUS Muestra todas las filas que
estn en la primera tabla, pero que no
aparecen en la segunda tabla.
UNION
Ejemplo en una consulta:
SELECT cus_lname, cus_fname, cus_initial,
cus_areacode, cus_phone
FROM customer
UNION
SELECT cus_lname, cus_fname, cus_initial,
cus_areacode, cus_phone
FROM customer_2;
Pag: 346
EJEMPLO DE UNION
Une dos tablas que contienen cada fila que est en la primera tabla, en la segunda
tabla o en ambas. No duplica aquellas filas que se encuentren en ambas tablas
cvc
cvc
cvc
cvc
UNION descarta las filas repetidas. Una tabla tiene 10 filas y la
otra 7, pero al final se crean solo 15 porque hay dos repetidas.
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
UNION ALL
Incluye las filas duplicadas. Ejemplo:
SELECT cus_lname, cus_fname, cus_initial,
cus_areacode, cus_phone
FROM customer
UNION ALL
SELECT cus_lname, cus_fname, cus_initial,
cus_areacode, cus_phone
FROM customer_2;
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
INTERSECT
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
MINUS
Muestra
todas las filas
que estn en
la primera
tabla, pero
que no
aparecen en
la segunda
tabla.
Se explica en el prximo slide.
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
JOIN OPERATORS
Volver a
los
Objetivos
Las columnas comunes en las tablas que se unen son usualmente el primary key de la
tabla dominante y el foreign key de la tabla dependiente en relaciones uno a muchos
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
SPECIAL OPERATIONS
Inner Join
Una unin que compara las tablas en la clusula
FROM y muestra aquellas filas que satisfagan la
condicin en la clausula WHERE
Outer Join
Una unin que muestra todas filas de una de las
tablas independientemente del par
Cross Join
Una unin que muestra todas filas de una tabla
multiplicada por la combinacin de la otra tabla.
INNER JOIN
Nota: En la Fig. 1, se ve
que solo 10 clientes tienen
ordenes emitidas
Slo 10 filas deben
devolverse de este INNER
join.
Pag: 336
Nota: Curiosamente no
incluye la directiva ON
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
JOIN ON Clause
Similar al JOIN del libro de texto que se explic de la fig 8-1. Observe que la
clusula ON requiere comparar el Primary Key de una tabla contra el Foreign
Key de la otra.
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
OUTER JOIN
Outer Joins
Devuelven no solamente las filas que parean,
sino tambin las filas con atributos que no
parean ya sea de una tabla o de ambas.
Hay tres tipos:
Left outer join: Todas las filas de la tabla de la izquierda (la
primera que se menciona en el query) se parean con las filas de
la tabla a la derecha. Estas son las que se van a incluir.
Right outer join: Todas las filas de la tabla de la derecha (la
segunda que se menciona en el query) se parean con las filas
de la tabla a la izquierda. Estas son las que se van a incluir.
Full outer join: Todas las filas de ambas tablas se van a incluir
independientemente del pareo.
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Results
CROSS JOIN
CROSS JOIN
Syntax:
SELECT column-list FROM table1
CROSS JOIN table2
Ejemplo:
SELECT * FROM invoice CROSS JOIN line;
Si la tabla invoice tiene 8 filas y la tabla line
tiene 18, el total del resultado ser 144 filas
(8 * 18)
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
CON EL SIGUIENTE
CONTENIDO EN LAS TABLAS
CUSTOMER
INVOICE
LINE
PRODUCT
VENDOR
No tienen
producto
asignado
338
339
No tienen
producto
asignado
Se incluyen todas
Full outer join: Todas las filas de ambas tablas se
Database Systems:
Design, Implementation, & Management, 7 th Edition, Rob & Coronel
van a incluir independientemente
del pareo.
CONCEPTOS AVANZADOS
MISCELNEOS
Volver a
los
Objetivos
PRODUCT
Volver a
los
Objetivos
Product
El producto (Cartesian Product) de dos tablas es la
combinacin de todas las filas en la primera tabla y
todas las filas en la segunda tabla
Se omite la clusula WHERE cuando se utiliza
PRODUCT
Ejemplo de PRODUCT
SQL PLUS
Volver a
los
Objetivos
Ejemplo de Scrip
REM *******************************************
REM *
Author: Nancy Santane Velez
*
REM *
Comentarios: Este sript corre y crea *
REM *
un reporte de los profesores.
*
REM *******************************************
SET ECHO OFF
SET PAGESIZE 35
SET LINESIZE 80
SET FEEDBACK OFF
TTITLE 'REPORTE DE PROFESORES | ORGANIZADO POR
DEPARTAMENTO'
BTITLE 'ReporteFacultad.sql'
COLUMN dep_nombre HEADING 'DEPARTAMENTO'
FORMAT A22
COLUMN fac_nombre HEADING 'PROFESOR'
FORMAT A22
COLUMN conf_titulo HEADING 'TOPICO'
FORMAT A24
COLUMN conf_cuantasveces HEADING 'CANTIDAD'
FORMAT 999
BREAK ON dep_nombre
SKIP 1 ON dep_nombre
BREAK ON fac_name
SKIP 1 ON REPORT
COMPUTE count OF conf_titulo ON fac_nombre
COMPUTE count OF conf_titulo ON REPORT
SPOOL ON
SPOOL C:\ReporteFacultad.txt
Comparacin de Corridas
RESUMEN DE FUNCIONES
DE SQL
Volver a
los
Objetivos
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Numeric Functions
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
String Functions
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Conversion Functions
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel
VIEWS
Volver a
los
Objetivos
Materialized View
Pag: 326
Ejemplo de un View
CREATE VIEW departamento50 AS
SELECT emp_id, last_name, first_name, title
FROM empleado
WHERE dept_id = 50;
Luego podemos hacer la siguiente consulta al
View.
SELECT * FROM departamento50;
Y la siguiente actualizacin:
UPDATE departamento50
SET dept_id = 10
WHERE emp_id = 10;
Esto afecta directamente la tabla de empleado.
EJERCICIOS DE PRCTICA
Volver a
los
Objetivos
Practica de laboratorio.
Utilizando el siguiente Diagrama de
Relacin:
REM ***************************************************************
REM * Datos de la tabla CONFERENCIA
*
REM ***************************************************************
INSERT INTO CONFERENCIA VALUES (120,1,'El Tarot ',3,'6-Jun2004');
INSERT INTO CONFERENCIA VALUES (119,1,'Base de Datos',5,'6May-2004');
INSERT INTO CONFERENCIA VALUES (119,2,'Usando Access',1,'7Feb-2005');
COMMIT;
REM ***************************************************************
REM * Datos de la tabla HISTORIAL
*
REM ***************************************************************
INSERT INTO HISTORIAL VALUES (119,1,'Asst','1-May-1990');
INSERT INTO HISTORIAL VALUES (120,1,'Asso','1-Jun-1991');
INSERT INTO HISTORIAL VALUES (120,2,'Full','1-Jul-2001');
INSERT INTO HISTORIAL VALUES (204,1,'Asst','15-Feb-04');
COMMIT;
Como el atributo no es
buleano, se asume que si es
mayor de cero, es cierto.
OJO Se va a utilizar
computer science en lugar
de fsica.
OJO Se va a utilizar
computer science en lugar
de matemtica.
FIN