Ser capaces de realizar una consulta dentro de otra

Documentos relacionados
SQL. Carlos A. Olarte BDI

SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.

Laboratorios de BASES DE DATOS. (I.T. Informática)

Capítulo 4. Realización de consultas

Administración y Análisis de Base de Datos con Microsoft SQL Server

Sin embargo, es muy habitual la necesidad de realizar ese cálculo no de forma global sino particularizando por algún criterio.

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 3-Septiembre Nombre:

SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón

Consultas Complejas:

BASES DE DATOS I CONSULTA DE DATOS

Bases de Datos y Sistemas de Información Curso Ingeniería Superior Primer Parcial.

Consultas SQL INNER JOIN

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS OTOÑO Clase 5: SQL (II) Aidan Hogan

CONOCIMIENTOS, COMPRENSIONES Y RECOLECCIÓN DE Pacto Pedagógico

Práctica 7. Ejercicios:

SQL Avanzado. José Muñoz Jimeno Febrero 2015

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: SELECT. Ing. Alfonso Vicente, PMP

Ficheros y Bases de Datos Curso Primer Parcial. 7 de FEBRERO de Nombre:

SQL: Consultas Avanzadas. Bases de Datos

Modelamiento y Diseño de Base de Datos

Oracle Database 12c SQL and PLSQL Fundamentals

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

PARTE I Desarrollen las siguientes cuestiones (concepto, ejemplos, etc):

Bases de Datos SQL - Ejemplos

Manual de Sentencias Básicas en SQL

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

select nombre from profesores where categoria='aso6';

o SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

1. DML. Las consultas de resumen

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

Curso SQL Nivel Avanzado 1. Miguel Jurado García

1º) Consulta que pida mes y año y muestre los datos completos de los obreros que han trabajado sin repeticiones. C11

FUNDAMENTOS ORACLE 12C

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

álgebra relacional 2

Guía práctica SQL. (c) Francisco Charte Ojeda

Manipulación de datos en SQL

Bases de Datos. Práctica 7 WinRDBI. Consultas en cálculo relacional y SQL

Consultas SQL II. Diego Egüez. Universidad San Francisco de Quito (USFQ)

Las soluciones de las consultas vistas en clase se encuentran en la página 5 en adelante.

Bases de Datos Geográficos

Bases de Datos 1. Teórico: Structured Query Language

SQL: Lenguaje de Interrogación Estructurado

Adquisición y Tratamiento de Datos (Febrero 2009).

A.1. Definiciones de datos en SQL

Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesn"t start automatically

CC BASES DE DATOS PRIMAVERA Clase 7: SQL (II) Aidan Hogan

Operador Restricción

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

Unidad. Lenguaje SQL. (Structured Query Language)

Programa de prácticas:

DML SQL II. Comparaciones con relaciones

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio.

Estructura de Dades i de la Informació 2

SQL. Fundamentos de Bases de Datos. Concepción de Sistemas de Información Instituto de Computación Facultad de Ingeniería Universidad de la República

S.Q.L. (Lenguaje de Consulta Estructurada) Consultas Avanzadas. Sistemas de Bases de Datos II - ITS EMT CETP

ÍNDICE INTRODUCCIÓN...17

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal.

Práctica 3: El lenguaje SQL (1ª parte). Programa de prácticas: (5ª sesión). Lenguaje SQL: manipulación de datos (consulta y actualización):

T03 Expresiones de selección de filas

Querying Microsoft SQL Server 2012

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'

Consultas en JPA-QL. Sistemas de Persistencia de Objetos

TEMA: CONSULTAS (ALGEBRA RELACIONAL Y SQL)

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Funciones agregadas. Funciones agregadas: COUNT

EJEMPLOS PRÁCTICOS SQL

20761 Querying Data with Transact-SQL

Descriptor del curso. Nombre del curso: Haciendo consultas en SQL Server Descripción:

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

m046a Curso Consultando SQL Server 2005/2008 con Transact-SQL, 15 h

Video Club Tarea 2 - Solución

8 SQL SERVER 2008 RA-MA

Agrupamiento de registros. Elaboración de claúsulas avanzadas de selección. 31/12/2011. Unidad 9

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

BASES DE DATO TO I VISTAS curso 2008

Modulo I: Introducción Gestores de Bases De Datos

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN

Algebra Relacional Curso Bases de Datos

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

BASES DE DATOS I ALTERNATIVA DE SOLUCIÓN AL TALLER 1: SQL ( ) Dados los siguiente esquemas:

Consultas con combinaciones

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

Tema 5 Algebra Relacional

Curso Querying Microsoft SQL Server 2014 (20461)

ÍNDICE PRIMERA PARTE... 17

Programación de Base de Datos con SQL Duración: 25 Horas Código Sence:

Tema 4. TEMA 4. El lenguaje de consulta SQL

Transcripción:

TEMA 25: SUBCONSULTAS OBJETIVOS Ser capaces de realizar una consulta dentro de otra 1.- SUBCONSULTAS A veces interesa obtener dentro de una selección de datos, otra, esto se conoce como subconsulta. La subconsulta se hace a través de la cláusula HAVING, la cual trabaja de forma muy parecida a la cláusula, y se utiliza para considerar sólo aquellos grupos que satisfagan la cualificación dada en la misma. Las expresiones permitidas en la cláusula HAVING deben involucrar funciones agregadas. Cada expresión que utilice sólo atributos planos deberá recogerse en la cláusula. Por otro lado, toda expresión que involucre funciones agregadas debe aparecer en la cláusula HAVING. Si queremos solamente los clientes que han realizado más de un pedido se utilizará la consulta: SELECT CLIENTE.APELLIDOS, COUNTPEDIDO.IMPORTE TOTAL_PEDIDOS LEFT OUTER JOIN PEDIDO ON CLIENTE.DNI = PEDIDO.DNI GROUP BY CLIENTE.APELLIDOS HAVING COUNT* > 1 ORDER BY CLIENTE.APELLIDOS; APELLIDOS TOTAL_PEDIDOS -------------------- --------------- PEREZ GARCIA 3 SEBASTIAN YUSTE 2

Otra forma de realizar consultas dentro de consultas es por medio de un SELECT dentro de otro. En las cláusulas y HAVING se permite el uso de subconsultas subselects en cualquier lugar donde se espere un valor. En este caso, el valor debe derivar de la evaluación previa de la subconsulta. El uso de subconsultas amplía el poder expresivo de SQL. Si queremos conocer los clientes que tienen más edad que MARIA SEBASTIAN YUSTE 55 años utilizaremos la consulta: SELECT * EDAD > SELECT EDAD APELLIDOS='SEBASTIAN YUSTE'; DNI APELLIDOS NOMBRE EDAD ---------- -------------------- -------- ------ 87882215 JIMENO DIAZ MIGUEL 61 57374811 JIMENO ZOLA DANIELA 61 42611580 ROMERO ALONSO LUIS 68 Cuando revisamos la consulta anterior, podemos ver la palabra clave SELECT dos veces. La primera al principio de la consulta - a la que nos referiremos como la SELECT externa - y la segunda en la cláusula, donde empieza una consulta anidada - nos referiremos a ella como la SELECT interna. Para cada tupla de la SELECT externa, la SELECT interna deberá ser evaluada. Tras cada evaluación, conoceremos la edad de la tupla llamada 'APELLIDOS', y podremos chequear si la edad de la tupla actual es mayor. Si queremos conocer todos los clientes que no han realizado ningún pedido por ejemplo, para poderlos eliminar de la base de datos, utilizaremos:

SELECT * NOT EXISTS SELECT PEDIDO.DNI FROM PEDIDO CLIENTE.DNI = PEDIDO.DNI; DNI APELLIDOS NOMBRE EDAD ---------- -------------------- -------- ------ 22344556 PEREZ LOPEZ ANA 30 57374811 JIMENO ZOLA DANIELA 61 Como hemos descrito antes, la subconsulta se evalúa para cada tupla de la consulta externa. Combinación de Resultados : UNION, INTERSECT Estas operaciones calculan la unión y la intersección del conjunto de tuplas obtenidas en dos ó más subconsultas. La siguiente consulta es un ejemplo de UNION: SELECT CLIENTE.DNI, CLIENTE.APELLIDOS, CLIENTE.NOMBRE CLIENTE.DNI = 12345678 UNION SELECT CLIENTE.DNI, CLIENTE.APELLIDOS, CLIENTE.NOMBRE CLIENTE.DNI = 22344556 ORDER BY 2,1; CLIENTE.DNI CLIENTE.APELLIDOS CLIENTE.NOMBRE ------------ -------------------- --------------- 12345678 PEREZ GARCIA JOSE MARIA 22344556 PEREZ LOPEZ ANA

Nótese que en la ordenación esta vez no se pone el nombre de las columnas, sólo el número de orden de las columnas primero ordena por Apellidos y luego por DNI. De igual modo que la sentencia UNION hace una suma de datos O lógico, con la sentencia INTERSECT se muestra el Y lógico de dos ó más tablas Pueden hacer referencia a la misma. Aquí tenemos un ejemplo para INTERSECT: SELECT CLIENTE.APELLIDOS, CLIENTE.NOMBRE, CLIENTE.EDAD CLIENTE.EDAD > 30 INTERSECT SELECT CLIENTE.APELLIDOS, CLIENTE.NOMBRE, CLIENTE.EDAD CLIENTE.EDAD > 60 ; CLIENTE.APELLIDOS CLIENTE.NOMBRE CLIENTE.EDAD -------------------- --------------- ------------- JIMENO DIAZ MIGUEL 61 JIMENO ZOLA DANIELA 61 ROMERO ALONSO LUIS 68 La sentencia INTERSECT no está contemplada en todos los motores de bases de datos. RESUMEN DEL TEMA 25 Se ha visto como obtener datos a partir de consultas dentro de consultas, ello se puede hacer principalmente de dos maneras:

Si la consulta conlleva datos calculados de otra consulta, se utiliza la sentencia HAVING. Si la consulta es un subconjunto de otra consulta se utiliza SELECT dentro de otro SELECT. Cuando una consulta es una suma de consultas parciales se utiliza la sentencia UNION entre consultas