Subconsultas Avanzadas

Slides:



Advertisements
Presentaciones similares
Base de Datos II.
Advertisements

SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
integridad referencial
VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Funciones de Fecha y Hora
Mejoras a la Cláusula GROUP BY
Consultas anidadas.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 2 Restringiendo y Ordenando Datos.
4.3. Privilegios de usuarios
PL/SQL Francisco Moreno Universidad Nacional.
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.
Universidad del Cauca – FIET – Departamento de Sistemas
Componentes sintácticos
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 7 Produciendo Salidas Más Legibles con iSQL*Plus.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
COMANDOS SQL.
CAPITULO 10 Manejando Restricciones
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,
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
CONSULTAS SENCILLAS A LA BASE DE DATOS
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
Autora: Francisca Montañez Muñoz
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Consultas SQL (Base de Datos)
LENGUAJE SQL.
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.
LENGUAJE ESTRUCTURADO DE CONSULTAS
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
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,
Introducción a la Optimización de Consultas. Francisco Moreno.
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. CREATE.
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
 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.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
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.
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.
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
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.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
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.
DLM Transact SQL Sesión II Recuperación de información.
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.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
DML Transact SQL Sesión VI Trabajando con subconsultas.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
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. 6 Subconsultas.
Transcripción de la presentación:

Subconsultas Avanzadas CAPITULO 17 Subconsultas Avanzadas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Objetivos Después de este capítulo, usted estará en capacidad de: Escribir una subconsulta de múltiples columnas Escribir una subconsulta en la cláusula FROM Usar subconsultas escalares en SQL Describir los tipos de problemas que pueden ser resueltos con subconsultas correlacionadas Escribir subconsultas correlacionadas Modificar y borrar filas usando subconsultas correlacionadas Usar los operadores EXISTS y NOT EXISTS Usar la cláusula WITH Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Subconsultas Consulta Principal: Se pueden usar para: Proveer valores a las cláusulas WHERE, HAVING y START WITH de una sentencia SELECT Seleccionar las filas a insertarse en una sentencia INSERT o CREATE TABLE Seleccionar las filas que se incluyen en una vista o instantánea con las sentencias CREATE VIEW o CREATE SNAPSHOT SELECT … FROM … WHERE … Subconsulta: ( SELECT … FROM … WHERE … ) Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Subconsultas Consulta Principal: Se pueden usar para: Definir uno o más valores que se modifican a filas existentes en una tabla con la sentencia UPDATE Usada en la cláusula FROM de la sentencia SELECT, permite definir las filas de una tabla que serán operadas por un consulta principal o contenedora. Opera de igual forma en las sentencias INSERT, UPDATE y DELETE SELECT … FROM … WHERE … Subconsulta: ( SELECT … FROM … WHERE … ) Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis de las subconsultas SELECT ListaDeColumnas FROM TablaExterna WHERE Expresión Operador (SELECT ListaDeColumnas FROM TablaInterna [WHERE Expresión Operador]); La subconsulta (consulta interna o consulta anidada) se ejecuta antes de la consulta principal. Esto no aplica en subconsultas correlacionadas El resultado de la subconsulta se usa para ejecutar la consulta principal Las subconsultas se pueden ubicar en las cláusulas WHERE, HAVING y FROM El Operador puede ser de dos tipos: De fila simple como >, >=, <, <=, =, <> De múltiples filas como IN, ANY, ALL Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas de múltiples columnas Consulta Principal: Cuáles empleados tienen el mismo cargo y el mismo jefe que los empleados del Depto 30? Subconsulta: Cargos y Jefes del Dep=30? Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas de múltiples columnas Cada fila de la consulta principal es comparada con las filas resultantes de la subconsulta, comparando todas las columnas al mismo tiempo, conocida como comparación emparejada (pairwise comparison) Universidad del Cauca – FIET – Departamento de Sistemas

Subconsulta de comparación dispareja Los resultados son los mismos que la consulta emparejada de la diapositiva anterior SOLO por casualidad Las dos consultas responden a lógicas distintas Los resultados de cada subconsulta se analizan por separado (desparejadas) Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas emparejadas y disparejas Empleados del mismo cargo y departamento de los empleados con nombre MARTINEZ y ZAMBRANO Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas en la cláusula FROM Consultar los salarios más altos de cada departamento de la empresa La subconsulta en la cláusula FROM es conocida como una Vista en Línea y sólo existe durante la ejecución de la sentencia SELECT actual Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas escalares Una subconsulta escalar es aquella subconsulta que retorna una sola columna y una sola fila En Oracle 8i las subconsultas escalares sólo se soportaban en: Sentencias SELECT (cláusulas FROM y WHERE) Cláusula VALUES de la sentencia INSERT En Oracle 9i, las subconsultas escalares se pueden usar también en: Todas las cláusulas de la sentencia SELECT, excepto en GROUP BY En condiciones y expresiones del DECODE y CASE En la cláusula SET y WHERE de la sentencia UPDATE Si la subconsulta escalar NO retorna ninguna fila, la expresión se evalúa con NULL Universidad del Cauca – FIET – Departamento de Sistemas

Uso de subconsultas escalares Consultar los empleados de la empresa, asignando el Tipo del mismo como LOCAL si esta laborando en CALI, de lo contrario NACIONAL Por cada fila de la tabla Empleados se hace la consulta en la tabla Departamentos y se define el valor LOCAL/NACIONAL con la función CASE El orden general de ejecución de la sentencia SELECT cambia un poco con respecto a lo explicado en el capitulo 5 página 18. Tampoco se comporta igual a una subconsulta tradicional Universidad del Cauca – FIET – Departamento de Sistemas

Uso de subconsultas escalares Consultar los empleados y ordenarlos por el nombre del departamento en el que trabajan, sin mostrar el nombre del departamento en los resultados Para cada fila de la tabla empleados se consulta (correlacionadamente) datos en departamentos para determinar el valor con el que posteriormente se ordenan El orden general de ejecución de la sentencia SELECT cambia un poco con respecto a lo explicado en el capitulo 5 página 18. Tampoco se comporta igual a una subconsulta tradicional Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas correlacionadas Se presenta cuando la subconsulta (consulta interna) hace referencia a una columna de la consulta principal (externa) Las subconsultas correlacionadas implican que cada fila de la consulta principal sea procesado con respecto a la subconsulta correlacionada (consulta interna) La subconsulta se realiza tantas veces como filas reporte la consulta principal Se comportan diferente a las subconsultas “tradicionales” ya que estas últimas se procesan primero y luego se procesa la consulta principal Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas correlacionadas Los pasos que se siguen para procesar una subconsulta correlacionada son: Para todas las filas de la Consulta Principal Seleccione la fila actual Ejecute la subconsulta interna con el valor de la fila actual Si el resultado de la subconsulta interna califica la fila se incluye en el conjunto de resultados, de lo contrario NO se incluye Fin para Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas correlacionadas Consultar los empleados que ganan más del promedio de salario de su departamento Universidad del Cauca – FIET – Departamento de Sistemas

Subconsultas correlacionadas Consultar los empleados que fueron contratados en el mismo cargo que tenían antes de 2001 (HistoricoDeEmpleados) Universidad del Cauca – FIET – Departamento de Sistemas

Uso del operador EXISTS El operador EXISTS prueba si existen filas en el conjunto de resultados de una subconsulta Si se encuentra una fila en la subconsulta: Se detiene la búsqueda en la subconsulta interna La condición se marca como verdadera (TRUE) Si no se encuentra una fila en la subconsulta: La condición se marca como falsa (FALSE) La búsqueda de filas continua en la subconsulta interna También se puede usar el operador NOT EXISTS, y la lógica se invierte Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador EXISTS Consultar los empleados que fueron contratados en el mismo cargo que tenían antes de 2001 (HistoricoDeEmpleados) Esta es mejor solución que la anterior, en cuanto a rendimiento Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador NOT EXISTS Consultar los departamentos que no tienen empleados registrados en el sistema Universidad del Cauca – FIET – Departamento de Sistemas

Actualizaciones correlacionadas Se necesita almacenar en la tabla empleados, los nombres de las localidades donde trabajan Universidad del Cauca – FIET – Departamento de Sistemas

Eliminaciones/Borrados correlacionados Eliminar los registros de la tabla HistoricoDeEmpleados para aquellos empleados que fueron nuevamente contratados a partir del 2001 Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Cláusula WITH Al usar la cláusula WITH se asigna un nombre a una consulta y luego ese nombre se puede usar varias veces dentro de una consulta compleja La consulta de la cláusula WITH se ejecuta (recupera los resultados) y almacena los resultados en el espacio de tablas temporal del usuario La cláusula WITH mejora el rendimiento de las consultas, facilita la lectura de una consulta y también recibe el nombre de cláusula de factorización de consultas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Uso de la cláusula WITH Consultar los Departamentos que cuestan (salario total) más que el costo promedio de todos los departamentos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Resumen En esta lección usted debió aprender a: Usar una subconsulta de múltiples columnas Diferenciar una subconsulta emparejada de una subconsulta dispareja Usar subconsultas en la cláusula FROM Usar subconsultas escalares Usar subconsultas correlacionadas en la sentencia SELECT, UPDATE y DELETE Usar los operadores EXISTS y NOT EXISTS Usar la cláusula WITH para factorizar subconsultas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Practica 17 Realizar una práctica de once (11) puntos que permite practicar: El uso de subconsultas de múltiples columnas El uso de subconsultas correlacionadas El uso del operador EXISTS El uso de subconsultas escalares El uso de la cláusula WITH Universidad del Cauca – FIET – Departamento de Sistemas