Sunteți pe pagina 1din 61

CPEL - CARRERAS UNIVERSITARIAS

PARA PERSONAS CON EXPERIENCIA LABORAL

Base de datos

Prof. Carlos Takano


Semana 2
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Joins
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Joins
 Los join permiten combinar las filas de dos o más
tablas
 En base a valores de las columnas usadas para
realizar la combinación
 En forma horizontal (el resultado contiene las
columnas de todas las tablas involucradas)
 Tipos
 INNER JOIN
 OUTER JOIN (LEFT, RIGHT Y FULL)
 CROSS JOIN (producto cartesiano)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Tipos de join
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

INNER JOIN
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

INNER JOIN
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 1
/*
La condición indica qué columnas se van a
comparar para hacer el JOIN
Los alias de tablas se usan para evitar
ambigüedad cuando hay varias columnas
con el mismo nombre
JOIN e INNER JOIN son equivalentes
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e JOIN departments d
ON (e.department_id=d.department_id)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 2
/*
La condición de JOIN también se puede
especificar en la cláusula WHERE
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e, departments d
WHERE e.department_id=d.department_id
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 3
/*
Los JOIN se realizan por pares de tablas
En el ejemplo, se une EMPLOYEES con
DEPARTMENTS y el resultado se une con
LOCATIONS
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e JOIN departments d
ON (e.department_id=d.department_id)
JOIN locations l
ON (d.location_id=l.location_id)
WHERE l.city <> 'Seattle'
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 4
/*
Para hacer join de una tabla consigo
misma, se debe incluir más de una vez
en la cláusula FROM
*/
SELECT e.first_name, e.last_name,
m.last_name manager
FROM employees e JOIN employees m
ON (e.manager_id=m.employee_id)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

LEFT OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

LEFT OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 5
/*
Si se usa LEFT JOIN, se incluye en el
resultado todas las filas de la tabla
que está a la izquierda de la cláusula
JOIN (EMPLOYEES)
LEFT OUTER JOIN es equivalente a LEFT JOIN
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e LEFT JOIN departments d
ON (e.department_id=d.department_id)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

RIGHT OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
50 FINANCE MIAMI
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

RIGHT OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
50 FINANCE MIAMI
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 6
/*
Si se usa RIGHT JOIN, se incluye en el
resultado todas las filas de la tabla
que está a la derecha de la cláusula
JOIN (DEPARTMENTS)
RIGHT OUTER JOIN es equivalente a RIGHT
JOIN
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e RIGHT JOIN departments d
ON (e.department_id=d.department_id)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

FULL OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
50 FINANCE MIAMI
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

FULL OUTER JOIN


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 10 ACCOUNTING NEW YORK
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 20 RESEARCH DALLAS
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 40 OPERATIONS BOSTON
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 50 FINANCE MIAMI
7698 Asis MANAGER 7839 01/05/1981 2850 30
7782 Edelberto MANAGER 7839 09/06/1981 2450 10
7788 Evangelino ANALYST 7566 19/04/1987 3000 20
7839 Meneo PRESIDENT 17/11/1981 5000 10
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30
7876 Asis CLERK 7788 23/05/1987 1100 20
7900 Daphne CLERK 7698 03/12/1981 950 30
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20
7934 Krin CLERK 7782 23/01/1982 1300 40

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAME LOC
7369 Erminia CLERK 7902 17/12/1980 800 20 20 RESEARCH DALLAS
7499 Fuensanta SALESMAN 7698 20/02/1981 1600 300 30 30 SALES CHICAGO
7521 Margaret SALESMAN 7698 22/02/1981 1250 500 30 30 SALES CHICAGO
7566 Tulla MANAGER 7839 02/04/1981 2975 20 20 RESEARCH DALLAS
7654 Oswaldo SALESMAN 7698 28/09/1981 1250 1400 30 30 SALES CHICAGO
7698 Asis MANAGER 7839 01/05/1981 2850 30 30 SALES CHICAGO
7782 Edelberto MANAGER 7839 09/06/1981 2450 10 10 ACCOUNTING NEW YORK
7788 Evangelino ANALYST 7566 19/04/1987 3000 20 20 RESEARCH DALLAS
7839 Meneo PRESIDENT 17/11/1981 5000 10 10 ACCOUNTING NEW YORK
7844 Sinforoso SALESMAN 7698 08/09/1981 1500 0 30 30 SALES CHICAGO
7876 Asis CLERK 7788 23/05/1987 1100 20 20 RESEARCH DALLAS
7900 Daphne CLERK 7698 03/12/1981 950 30 30 SALES CHICAGO
7766 Cecilia MANAGER 7839 29/04/1981 2875 60
7902 Pirra ANALYST 7566 03/12/1981 3000 20 20 RESEARCH DALLAS
7934 Krin CLERK 7782 23/01/1982 1300 40 40 OPERATIONS BOSTON
50 FINANCE MIAMI
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

JOIN – Ejemplo 7
/*
Si se usa FULL JOIN, se incluye en el
resultado las filas de ambas tablas
involucradas
FULL OUTER JOIN es equivalente a FULL JOIN
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e FULL JOIN departments d
ON (e.department_id=d.department_id)
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Funciones de grupo
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Cláusula GROUP BY
 Permite aplicar funciones de totalización o
resumen, agrupando las filas según lo
requerido
 Devuelve una fila de información
totalizada por cada grupo, aplicando
funciones como SUM, COUNT, AVG, MIN,
MAX, entre otras
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

GROUP BY – Ejemplo 1
/*
GROUP BY va después de WHERE
Primero se aplica el filtro, después se agrupa
En la cláusula GROUP BY deben aparecer todas las
columnas que aparecen en la cláusula SELECT que no
son funciones de grupo
*/
SELECT d.location_id, d.department_id, SUM(e.salary)
FROM employees e JOIN departments d
ON e.department_id = d.department_id
WHERE d.location_id = 1700
GROUP BY d.location_id, d.department_id
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

GROUP BY – Ejemplo 2
/*
HAVING permite filtrar filas después de agrupar
Es "El WHERE del GROUP BY"
*/
SELECT d.location_id, d.department_id, MAX(e.salary)
FROM employees e JOIN departments d
ON e.department_id = d.department_id
WHERE d.location_id = 1700
GROUP BY d.location_id, d.department_id
HAVING COUNT(*) > 5
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

La cláusula ORDER BY
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Cláusula ORDER BY
 Si no se especifica ORDER BY, no se
puede establecer con seguridad en qué
orden devolverá las filas la base de datos
 Cada criterio de ordenación puede ser una
expresión, un alias de columna o la
posición de una columna en la cláusula
SELECT
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

ORDER BY – Ejemplo 1
/*
Ordena por sueldo en forma ascendente
(default)
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e JOIN departments d
ON (e.department_id=d.department_id)
JOIN locations l
ON (d.location_id=l.location_id)
WHERE l.city <> 'Sydney'
ORDER BY e.salary
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

ORDER BY – Ejemplo 2
/*
Especificar criterios para ordenar por
posición de columna en la cláusula SELECT
DESC ordena en forma descendente
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e JOIN departments d
ON (e.department_id=d.department_id)
ORDER BY 4 DESC, 1
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

ORDER BY – Ejemplo 3
/*
Permite ordenar según el valor de una
expresión, incluso basada en columnas
que no aparecen en la cláusula SELECT
*/
SELECT e.employee_id, e.first_name,
e.last_name, d.department_name
FROM employees e JOIN departments d
ON (e.department_id=d.department_id)
ORDER BY TO_CHAR(hire_date,'YYYY'),
e.employee_id
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Operadores de conjuntos
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Operadores de conjuntos
 UNION y UNION ALL
 INTERSECT
 MINUS
 En Oracle, corresponde al operador
DIFFERENCE
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

UNION …

B
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

… UNION
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

UNION – Ejemplo 1
/*
UNION elimina duplicados
UNION ALL no elimina duplicados
*/
SELECT manager_id
FROM departments
WHERE manager_id IS NOT NULL
UNION
SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL;
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

INTERSECT …

B
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

… INTERSECT
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

INTERSECT – Ejemplo 1
/*
INTERSECT devuelve las filas comunes
*/
SELECT manager_id
FROM departments
WHERE manager_id IS NOT NULL
INTERSECT
SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

MINUS …

B–A
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

… MINUS

A minus B

Atención: (A – B) ≠ (B – A)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

MINUS – Ejemplo 1
/*
MINUS devuelve las filas del resultado del primer
SELECT que no están en el segundo
*/
SELECT manager_id
FROM departments
WHERE manager_id IS NOT NULL
MINUS
SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Subconsultas (subqueries)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subconsultas o subqueries
 Son sentencias SELECT que se utilizan
como parte de otra sentencia SQL
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 1
/*
Subquery en cláusula WHERE
Este subquery debe devolver sólo un valor
*/
SELECT employee_id, first_name, last_name,
department_id, salary
FROM employees
WHERE salary >= (SELECT salary FROM employees
WHERE first_name = 'Alexander'
AND last_name = 'Hunold')
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 2
/*
Subquery en cláusula WHERE
Este subquery debe devolver sólo un valor
Condiciones en subqueries se pueden combinar
con otras
*/
SELECT employee_id, first_name, last_name,
department_id, salary
FROM employees
WHERE salary = (SELECT max(salary) FROM employees
WHERE department_id = 30)
AND department_id = 80
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 3
/*
Subquery en cláusula WHERE
Este subquery puede devolver más de un valor
*/
SELECT d.department_id, d.department_name
FROM departments d
WHERE d.department_id IN (SELECT e.department_id
FROM employees e)
ORDER BY d. department_id
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 4
/*
Subquery en cláusula WHERE
Este subquery puede devolver más de un valor
ALL significa TODOS
ANY significa POR LO MENOS UNO
*/
SELECT employee_id, first_name, last_name,
department_id, salary
FROM employees
WHERE salary > ALL (SELECT salary FROM employees
WHERE first_name='David')
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 5
/*
Subquery en cláusula FROM
Este subquery se utiliza como si fuera una tabla
o vista
*/
SELECT e.last_name, e.salary, e.department_id,
m.max_salary
FROM employees e JOIN
(SELECT department_id, max(salary) max_salary
FROM employees
GROUP BY department_id) m
ON e.department_id = m.department_id
WHERE e.salary < m.max_salary
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 6
/*
Subquery en cláusula SELECT
Este subquery está correlacionado, utiliza columnas
que pertenecen a la sentencia externa
*/
SELECT employee_id, first_name, last_name,
department_id, salary,
(SELECT max(salary)
FROM employees
WHERE department_id=e.department_id) dept_max
FROM employees e
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 7
/*
Semijoin
Subquery correlacionado
*/
SELECT d.department_id, d.department_name
FROM departments d
WHERE EXISTS
(SELECT 1
FROM employees e
WHERE e.department_id = d.department_id)
ORDER BY d. department_id
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Subquery – Ejemplo 8
/*
Antijoin
Subquery correlacionado
*/
SELECT d.department_id, d.department_name
FROM departments d
WHERE NOT EXISTS
(SELECT 1
FROM employees e
WHERE e.department_id = d.department_id)
ORDER BY d. department_id
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Más ejemplos de uso de


subqueries
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

CREATE TABLE AS – Ejemplo 1


/*
Crea una nueva tabla e inserta filas
en la misma operación
*/
CREATE TABLE departments_1700 AS
SELECT * FROM departments
WHERE location_id = 1700
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

CREATE TABLE AS – Ejemplo 2


/*
Crea sólo la estructura, sin datos
*/
CREATE TABLE departments_1700 AS
SELECT * FROM departments
WHERE 1 = 2
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

INSERT – Ejemplo 2
/*
INSERT con subquery
*/
INSERT INTO departments_1700
SELECT * FROM departments
WHERE location_id = 1700
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

UPDATE – Ejemplo 2
/*
UPDATE con subquery
*/
UPDATE departments
SET manager_id =
(
SELECT employee_id FROM employees
WHERE first_name = 'Alexander'
AND last_name='Hunold'
)
WHERE department_id=100
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

UPDATE – Ejemplo 3
/*
UPDATE con subquery correlacionado
*/
UPDATE employees e
SET manager_id =
(
SELECT manager_id FROM departments d
WHERE d.department_id = e.department_id
)
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

DELETE – Ejemplo 2
/*
DELETE con subquery en la cláusula WHERE
Las filas a eliminar no deben tener
filas dependientes
*/
DELETE FROM departments
WHERE department_id NOT IN
(SELECT department_id FROM employees)
CPEL - CARRERAS UNIVERSITARIAS
PARA PERSONAS CON EXPERIENCIA LABORAL

Vistas y sinónimos
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Vistas …
 Una vista es una consulta nombrada y
almacenada en el diccionario de datos
 Una vista se puede utilizar en una consulta
de la misma manera que se hace con una
tabla
 Bajo ciertas condiciones, se puede actualizar
datos a través de una vista
 No ocupan espacio de almacenamiento
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

… Vistas
 Las vistas son útiles para:
 Mejorar la seguridad: restringir el acceso a algunas
filas o columnas de una tabla
 Ocultar la complejidad: permite ver la combinación de
datos de varias tablas como si fueran una sola o
calcular datos derivados
 Presentar los datos de una manera distinta de la
definida en las tablas: cambiar el nombre o el orden
de presentación de las columnas
 Aislar las aplicaciones de cambios en la definición de
las tablas
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

Sinónimos …
 Un sinónimo es un alias (nombre alterno)
para otro objeto
 Tabla
 Vista
 Subprograma o paquete PL/SQL
 Otro sinónimo
 Permiten acceder en forma indirecta a los
objetos
CPEL – CARRERAS UNIVERSITARIAS PARA PERSONAS CON EXPERIENCIA LABORAL

… Sinónimos
 No ocupan espacio de almacenamiento
 Hay sinónimos
 Públicos: pertenecen al grupo PUBLIC
 Todos los usuarios pertenecen a PUBLIC
 Privados: pertenecen a un usuario específico

S-ar putea să vă placă și