Copyright  Oracle Corporation, 1997. All rights reserved. 6 Subconsultas.

Slides:



Advertisements
Presentaciones similares
Consultas en Visual FoxPro
Advertisements

Base de Datos II.
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: SELECT Ing. Alfonso Vicente, PMP
Mejoras a la Cláusula GROUP BY
Consultas anidadas.
Lenguaje de consulta de Hibernate
EXPLAIN PLAN Cómo leer los resultados del EXPLAIN PLAN
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 2 Restringiendo y Ordenando Datos.
OPERACIONES DE RECUPERACIÓN. WHERE ciudad =‘Las Palmas’; de los suministradores Obtener el código y la situación de Las Palmas SELECT sn, situacion FROM.
SQL.
CAPITULO 1 Escribiendo Sentencias SELECT Básicas
Lenguaje SQL (Structured Query Language)
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
D Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Uso de SQL*Plus.
Subconsultas Avanzadas
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
F Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Sintaxis de Unión en Oracle.
UNITA - IBARRA TRIGGERS
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
COMANDOS SQL.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Bases de datos con MYSQL
Desplegando datos de múltiples tablas
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Bases de Datos.
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
CONSULTAS SENCILLAS A LA BASE DE DATOS
Autora: Francisca Montañez Muñoz
Consultas SQL (Base de Datos)
Introducción.
Bases de Datos Sql.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
E.U. Informática U.L.P.G.C. E.U. Informática U.L.P.G.C. Introducción a - 1 Introducción a Oracle.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Bases de Datos SQL.
SQL STRUCTURED QUERY LANGUAGE
Unidad 6. Tema 4. Lenguaje de consultas SQL
Copyright  Oracle Corporation, All rights reserved. 4 Visualización de datos de varias tablas.
Apuntes PL-SQL Triggers II. Tipos de datos compuestos Registros PL/SQL: Son similares a un tipo struct en C o a un tipo Registro en otros 3GL. Se componen.
Copyright  Oracle Corporation, All rights reserved. Agenda.
Copyright  Oracle Corporation, All rights reserved. 8 Manipulación de Datos.
Copyright  Oracle Corporation, All rights reserved. 1 Escritura de sentencias SQL SELECT básicas.
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
Copyright  Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos.
JOB_HISTORY EMPLOYEE_ID (PK,FK) START_DATE (PK) END_DATE JOB_ID (FK) DEPARTMENT_ID (FK) EMPLOYEES EMPLOYEE_ID (PK) FIRST_NAME LAST_NAME.
Copyright  Oracle Corporation, All rights reserved. 12 Otros Objetos de la Base de Datos.
DLM Transact SQL Sesión II Recuperación de información.
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
Copyright  Oracle Corporation, All rights reserved. 11 Creación de Vistas.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
Copyright  Oracle Corporation, All rights reserved. 3 Funciones de una sola fila.
DML Transact SQL Sesión VI Trabajando con subconsultas.
Copyright  Oracle Corporation, All rights reserved. 9 Creación y gestión de tablas.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
DML Transact SQL Sesión III Agrupando y resumiendo información.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Copyright  Oracle Corporation, All rights reserved. 10 Constraints (Restricciones)
Transcripción de la presentación:

Copyright  Oracle Corporation, All rights reserved. 6 Subconsultas

6-2 Copyright  Oracle Corporation, All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir los tipos de problemas que las subconsultas pueden resolver. Definir subconsultas. Enumerar los tipos de subconsultas. Escribir subconsultas que afecten a una sola fila y de varias filas. Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir los tipos de problemas que las subconsultas pueden resolver. Definir subconsultas. Enumerar los tipos de subconsultas. Escribir subconsultas que afecten a una sola fila y de varias filas.

6-3 Copyright  Oracle Corporation, All rights reserved. Uso de una Subconsulta para Resolver un Problema “¿Quién tiene un salario superior al de Jones?” “¿Qué empleados tienen un salario superior al salrio de Jones?” Consulta Principal ? “¿Cuál es el salario de Jones?” ? Subconsulta

6-4 Copyright  Oracle Corporation, All rights reserved. Subconsultas La subconsulta se ejecuta una vez y antes de la consulta principal. La subconsulta se ejecuta una vez y antes de la consulta principal. El resultado de la subconsulta es usado por la consulta principal externa. El resultado de la subconsulta es usado por la consulta principal externa. La subconsulta se ejecuta una vez y antes de la consulta principal. La subconsulta se ejecuta una vez y antes de la consulta principal. El resultado de la subconsulta es usado por la consulta principal externa. El resultado de la subconsulta es usado por la consulta principal externa. SELECTselect_list FROMtable WHEREexpr operator (SELECTselect_list FROMtable);

6-5 Copyright  Oracle Corporation, All rights reserved SQL> SELECT ename 2 FROM emp 3 WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); Usando una subconsulta ENAME KING FORD SCOTT ENAME KING FORD SCOTT

6-6 Copyright  Oracle Corporation, All rights reserved. Instrucciones para las subconsultas Escriba las subconsultas entre paréntesis. Una subconsulta debe aparecer a la derecha del operador. No añada ORDER BY a una subconsulta. Utilice operadores a nivel de fila para subconsultas que devuelvan solo una fila. Utilice operadores que actúan sobre varios registros para subconsultas que devuelvan más de una fila. Escriba las subconsultas entre paréntesis. Una subconsulta debe aparecer a la derecha del operador. No añada ORDER BY a una subconsulta. Utilice operadores a nivel de fila para subconsultas que devuelvan solo una fila. Utilice operadores que actúan sobre varios registros para subconsultas que devuelvan más de una fila.

6-7 Copyright  Oracle Corporation, All rights reserved. Tipos de subconsultas Subconsulta de una sola fila Cons. Principal Subquery devuelve CLERK Subconsulta de varias filas CLERKMANAGER Cons. Principal Subquery devuelve

6-8 Copyright  Oracle Corporation, All rights reserved. Subconsultas de una sola fila Devuelven una sola fila. Utilizan comparadores de una sola fila. Devuelven una sola fila. Utilizan comparadores de una sola fila. Operador = > >= < <= <> Significado Igual a Mayor que Mayor que o igual a Menor que Menor que o igual a No igual a

6-9 Copyright  Oracle Corporation, All rights reserved. Ejecución de subconsultas de una sola fila CLERK 1100 ENAME JOB MILLER CLERK ENAME JOB MILLER CLERK SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4(SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > 8(SELECT sal 9FROMemp 10WHEREempno = 7876);

6-10 Copyright  Oracle Corporation, All rights reserved. Uso de funciones de grupo en una subconsulta 800 ENAME JOB SAL SMITH CLERK 800 ENAME JOB SAL SMITH CLERK 800 SQL> SELECTename, job, sal 2 FROMemp 3 WHEREsal = 4(SELECTMIN(sal) 5FROMemp);

6-11 Copyright  Oracle Corporation, All rights reserved. La cláusula HAVING en subconsultas Oracle ejecuta primero las subconsultas. Oracle devuelve el resultado a la cláusula HAVING de la consulta principal. Oracle ejecuta primero las subconsultas. Oracle devuelve el resultado a la cláusula HAVING de la consulta principal. 800 SQL> SELECTdeptno, MIN(sal) 2 FROMemp 3 GROUP BYdeptno 4 HAVINGMIN(sal) > 5(SELECTMIN(sal) 6FROMemp 7WHEREdeptno = 20);

6-12 Copyright  Oracle Corporation, All rights reserved. ¿Qué está mal en esta sentencia? ERROR: ORA-01427: single-row subquery returns more than one row no rows selected ERROR: ORA-01427: single-row subquery returns more than one row no rows selected SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4(SELECT MIN(sal) 5FROM emp 6GROUP BY deptno); “Operador de una sola fila en subconsulta de varias filas”

6-13 Copyright  Oracle Corporation, All rights reserved. ¿Funcionaría esta sentencia? no rows selected La Subconsulta NO devuelve registros SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4(SELECTjob 5FROMemp 6WHEREename='SMYTHE');

6-14 Copyright  Oracle Corporation, All rights reserved. Subconsultas de varias filas Devuelven más de una fila. Usa comparadores de varias filas. Devuelven más de una fila. Usa comparadores de varias filas. Operador IN ANY ALL Significado Igual a los valores de cierta lista Compara los valores con cada valor devuelto por la subconsulta Compara los valores con cada uno de los valores devueltos por la subconsulta

6-15 Copyright  Oracle Corporation, All rights reserved. Uso del operador ANY en EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal < ANY 4(SELECTsal 5 FROMemp 6WHEREjob = 'CLERK') 7 AND job <> 'CLERK'; subconsultas multi-registro

6-16 Copyright  Oracle Corporation, All rights reserved. Uso del operador ALL en EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST SQL> SELECT empno, ename, job 2 FROM emp 3 WHERE sal > ALL 4 (SELECTavg(sal) 5 FROMemp 6GROUP BYdeptno) subconsultas multi-registro

6-17 Copyright  Oracle Corporation, All rights reserved. Valores nulos en una subconsulta SELECTemp.last_name FROMemployees emp WHEREemp.employeed_id NOT IN (SELECT mgr.manager_id FROM employees mgr); No rows selected NOT IN  <> ALL. IN  =ANY NOT IN  <> ALL. IN  =ANY

6-18 Copyright  Oracle Corporation, All rights reserved. Subconsultas multi-columna Consulta Principal MANAGER 10 Subquery SALESMAN 30 MANAGER 10 CLERK 20 La La C. Principal compara MANAGER 10 Valores de una subc. multi-registro y multi-columna SALESMAN 30 MANAGER 10 CLERK 20 con

6-19 Copyright  Oracle Corporation, All rights reserved. Usando Visualizar el nombre, nº de departamento, salario y comisión de cualquier empleado cuyo salario y comisión se correspondan (ambos) con la comisión y salario de cualquier empleado del departamento 30. SQL> SELECTename, deptno, sal, comm 2 FROMemp 3 WHERE (sal, NVL(comm,0)) IN 4 (SELECT sal, NVL(comm,0) 5 FROM emp 6 WHERE deptno = 30); subconsultas multi-columna

6-20 Copyright  Oracle Corporation, All rights reserved. Uso de un subconsulta en la cláusula FROM ENAME SAL DEPTNO SALAVG KING JONES SCOTT rows selected. ENAME SAL DEPTNO SALAVG KING JONES SCOTT rows selected. SQL> SELECT a.ename, a.sal, a.deptno, b.salavg 2 FROM emp a, (SELECT deptno, avg(sal) salavg 3 FROM emp 4 GROUP BY deptno) b 5 WHERE a.deptno = b.deptno 6 AND a.sal > b.salavg;

6-21 Copyright  Oracle Corporation, All rights reserved. Resumen En esta lección: Identificar cuándo una subconsulta puede ayudar a resolver una pregunta. Escribir subconsultas cuando una consulta está basada en valores desconocidos. En esta lección: Identificar cuándo una subconsulta puede ayudar a resolver una pregunta. Escribir subconsultas cuando una consulta está basada en valores desconocidos. SELECTselect_list FROMtable WHEREexpr operator (SELECT select_list FROM table);

6-22 Copyright  Oracle Corporation, All rights reserved. Visión general de la práctica Crear subconsultas para recuperar valores basados en criterios desconocidos. Usar subconsultas para recuperar valores que existen en un conjunto de datos y que no existen en otro.