3 Consultas y subconsultas

Documentos relacionados
Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

6 Funciones avanzadas

6.0 Funcionalidades Adicionales

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

A.1. Definiciones de datos en SQL

Sub consultas avanzadas

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

1. DML. Las subconsultas

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Consultas con combinaciones

CONSULTAS BASICAS EN SQL SERVER

Charla N 6: Utilidades de Consulta de datos.

Microsoft SQL Server 2005

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

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

<Generador de exámenes> Visión preliminar

CAPÍTULO 3 VISUAL BASIC

2071 Querying Microsoft SQL Server 2000 with Transact- SQL

Guía de instalación de la carpeta Datos de IslaWin

2 Bloque de consulta básico

SQL (Structured Query Language)

Formularios. Formularios Diapositiva 1

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

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

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

Oracle 12c DISEÑO Y PROGRAMACIÓN

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Guía de instalación 1

CONVERTIMOS SUS PROYECTOS EN REALIDAD SOMOS CONSTRUCTORES Y DESARROLLADORES DE NUESTROS SOFTWARE, CONFIENOS SUS PROYECTOS. Descripción del Producto

Capítulo 9. Archivos de sintaxis

CURSO DE SQL SERVER 2005

BuCo. Graphical web billing tool

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

O C T U B R E SOPORTE CLIENTE. Manual de Usuario Versión 1. VERSIÓN 1 P á g i n a 1

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

PROCEDIMIENTO DE ACCESO A DB2 AS/400 MEDIANTE SQL SERVER

Operación de Microsoft Word

Operación de Microsoft Excel. Una lista o una base de datos de Microsoft Excel.

Microsoft Access proporciona dos métodos para crear una Base de datos.

Comisión Nacional de Bancos y Seguros

1. CONSIDERACIONES GENERALES

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

Operación Microsoft Access 97

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Comisión Nacional de Bancos y Seguros

Capítulo IV. Implementación del Sistema

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

Creación y administración de grupos locales

Curso Excel Básico - Intermedio

2_trabajar con calc I

Instalación y configuración de Windows SharePoint Services (WSS) 2003

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Manual para el administrador de cuentas personales o familiares

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS

TciSatSingleW32 Versión 3.1

Versión 1.0. BOLETÍN (JUNIO 2009) a2móvil PC. a2 softway C. A.

Retrospect 10 para Mac Anexo de la Guía del usuario

Novedades en Q-flow 3.02

NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios

LiLa Portal Guía para profesores

Manual de operación Tausend Monitor

Tema 4. Manipulación de datos con SQL

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Operación Microsoft PowerPoint 97

Curso Online de Microsoft

Bases de datos en Excel

5 Objetos de base de datos

Acronis License Server. Guía del usuario

Workflows? Sí, cuántos quiere?

Manual de instalación. BIABLE Great Plains-Dynamics

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

MS_10774 Querying Microsoft SQL Server 2012

Base de datos II Facultad de Ingeniería. Escuela de computación.

Guía práctica de SQL

Manual del Sistema Extranet de Proveedores. Extranet de Proveedores. Versión 3.0. Manual de Usuario

Base de datos II Facultad de Ingeniería. Escuela de computación.

Operación de Microsoft Excel

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Procedimientos para agrupar y resumir datos

PROGRAMACIÓN PÁGINAS WEB CON PHP

1

Centro de Capacitación en Informática

Guía N 1: Fundamentos básicos(i)

CURSO DE INFORMATICA 2005

Base de datos Procedimientos Almacenados y Funciones

Bienvenido al sistema de Curriculum Digital CVDigital

Indice I. INTRODUCCIÓN SEGURIDAD DE ACCESO REGISTRO DEL VALOR FLETE CONSULTAS V. GRÁFICAS. MANUAL GENERADORES DE CARGA RNDC Noviembre 2015 Versión 2

PowerPoint 2010 Introducción a Microsoft Office PowerPoint 2010

Transcripción:

3 Consultas y subconsultas En SQL, la sentencia SELECT permite escribir una consulta o requerimiento de acceso a datos almacenados en una base de datos relacional. Dichas consultas SQL van desde una operación simple al mostrar datos desde una única tabla, hasta operaciones complejas que involucran la unión de varias tablas, expresiones compuestas para restringir las filas resultantes, etc. Cuando una consulta posee cierto grado de complejidad es útil dividirla en partes, lo cual brinda mayor flexibilidad en el reuso de partes y mejor legibilidad de la consulta como un todo. Subconsultas se utilizan para dividir una consulta en varias partes. Una subconsulta es una consulta en sí misma que posee existencia dentro de una consulta de nivel superior. Dicho mecanismo de subconsultas puede utilizarse en cualquier sentencia DML. Por otro lado, Oracle9i provee diferentes herramientas de software para interactuar con la base de datos y realizar tareas de administración. Dos de estas herramientas son SQL*Plus e isql*plus. Utilizando SQL*Plus es posible ejecutar cualquier sentencia SQL y cualquier programa PL/SQL, formatear resultados provenientes de consultas, y administrar la base de datos. isql*plus es la interfase web de SQL*Plus.

3.1 Subconsultas (subqueries) En la figura (1) se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de:? Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit).? Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit).? Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit).

31 Subconsultas (subqueries) 3.1.1 Objetivos Una subconsulta es una consulta dentro de una consulta. En una consulta que posea varias partes, una subconsulta responde una parte del requerimiento, y la consulta padre responde la otra parte. Cuando se anidan varias subconsultas, la consulta más interna es evaluada en primer lugar. Subconsultas pueden utilizarse en cualquier sentencia DML. Subconsultas utilizadas en la cláusula FROM, en una consulta de nivel tope, son denominadas vistas en línea (inline view). Vistas en línea son tratadas en un tema posterior. Subconsultas que aparecen en la cláusula WHERE de una consulta son denominadas subconsultas anidadas. Cuando una columna de la tabla utilizada en la consulta padre es referenciada en la subconsulta, dicha subconsulta se denomina subconsulta correlacionada. Una subconsulta escalar retorna una única fila conformada por un único valor de columna. Dicho tema abarca la funcionalidad de los diferentes tipos de subconsultas

31 Subconsultas (subqueries) 3.1.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

31 Subconsultas (subqueries) 3.1.3 Descripción de las Subconsultas Una subconsulta es una sentencia SELECT que está incluida en una cláusula de otra sentencia SQL. Se pueden construir comandos simples y potentes usando subconsultas. Pueden ser muy útiles cuando se necesita seleccionar filas de una tabla con una condición que depende de los datos que están en la misma tabla o en alguna otra. Se puede poner la subconsulta en algunas de las siguientes cláusulas de un comando SQL:? Cláusula WHERE.? Cláusula HAVING.? Cláusula FROM de una sentencia SELECT o DELETE (este tema se desarrollará mas adelante). Frecuentemente se refiere a una subconsulta como un SELECT anidado, un sub-select, o una sentencia SELECT interna. (1) Guía? Una subconsulta debe estar encerrada entre paréntesis.? La subconsulta debe aparecer a la derecha del operador de comparación.? Las subconsultas no pueden contener una cláusula ORDER BY. Se puede tener una sola cláusula ORDER BY para una sentencia SELECT, y específicamente debe ser la última cláusula en la sentencia SELECT principal. Orden de Procesamiento de las Subconsultas Anidadas Primero se ejecuta la subconsulta (SELECT anidado) y su resultado se pasa para completar la condición de la consulta principal, o externa. (2)

1 Subconsultas (subqueries) 3.1.4 Subconsultas de una sola Fila Una subconsulta de filas simples devuelve una sola fila desde la sentencia SELECT anidada. Este tipo de subconsulta utiliza un operador de fila simple. El ejemplo presentado en la sección 3.1.3, contiene una subconsulta de filas simples, ya que devuelve un solo valor: el número del departamento en la cual trabaja Vargas. Se pueden mostrar los datos resultantes de una consulta principal usando una función de grupo en una subconsulta para devolver una fila simple. (1) Un error común es que una subconsulta de fila simple dé como resultado más de una fila. (2)

3.1 Subconsultas (subqueries) 3.1.5 Subconsultas de varias Filas Las subconsultas que devuelven más de una fila se denominan subconsultas de filas múltiples. Se debe usar un operador de filas múltiples, tal como IN, en lugar de un operador de fila simple. Este operador espera uno o más valores. (1) Operadores de Filas Múltiples Además del operador IN, SQL ofrece los operadores que se detallan a continuación para escribir condiciones de búsqueda en subconsultas que devuelven más de una fila. (2)

3.1 Subconsultas (subqueries) 3.1.6 Subconsultas en la cláusula HAVING Además de la cláusula WHERE, las subconsultas también se pueden usar en la cláusula HAVING. Primero se ejecuta la subconsulta y el resultado es devuelto a la cláusula HAVING de la consulta principal. (1)

3.1 Subconsultas (subqueries) 3.1.7 AP: Subconsultas de una sola Fila Laboratorio 3.1.7 Subconsultas de una sola fila Problemas en los que se requieran seleccionar filas de una tabla con alguna condición que dependa de datos ubicados en la misma tabla o en alguna otra. Duración Estimada: 40 min. 3.1 Subconsultas (subqueries) 3.1.8 AP : Subconsultas de varias Filas Laboratorio 3.1.8 Subconsultas de varias filas Problemas en los que se requieran seleccionar filas de una tabla con alguna condición que dependa de datos ubicados en la misma tabla o en alguna otra. Inconvenientes con valores nulos dentro de subconsultas.

3.1 Subconsultas (subqueries) 3.1.9 AI: Manejo de Subconsultas Teniendo en cuenta la consulta principal sobre la tabla EMPLOYEES y las cuatro subconsultas que se podrían anexar a la misma, una con flechas cada una de las opciones de subconsultas presentadas con el resultado que crea correcto

31 Subconsultas (subqueries) 3.1.10 Síntesis Una subconsulta es una consulta dentro de una consulta. La escritura de subconsultas es una forma eficaz de manipular datos. Es posible escribir subconsultas de una sola fila y de múltiples filas. Subconsultas de una sola fila retornan cero o una fila; mientras que subconsultas de múltiples filas retornan cero o más filas. Los operadores de subconsultas más comúnmente utilizados son: IN y EXISTS. Una subconsulta puede aparecer en la cláusula WHERE o en la cláusula FROM. Las mismas pueden también reemplazar nombres de tablas en sentencias DELETE, INSERT y UPDATE. Subconsultas que retornan un resultado formado por una fila y una columna son denominadas subconsultas escalares. Subconsultas escalares pueden ser utilizadas en la mayoría de lugares donde puede ser utilizada una expresión.

3.2 Producción de una salida legible con isql*plus En la figura (1) se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de:? Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit).? Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit).? Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit).? Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit)

3.2 Producción de una salida legible con isql*plus 3.2.1 Objetivos SQL*Plus, ampliamente utilizado por DBAs y desarrolladores para interactuar con la base de datos, es una herramienta poderosa propietaria de Oracle9i Server. Utilizando SQL*Plus es posible ejecutar cualquier sentencia SQL y cualquier programa PL/SQL, formatear resultados provenientes de consultas, y administrar la base de datos. ISQL*Plus es la interfase web de SQL*Plus (en la versión actual, se encuentra disponible únicamente bajo plataforma Windows). SQL*Plus se encuentra empaquetado conjuntamente con el software Oracle y puede ser instalado utilizando la rutina de instalación del software cliente en cualquier PC. Dicha herramienta es automáticamente instalada cuando se instala el software servidor. Este tema discute las capacidades de SQL*Plus y su utilización. Los comandos SQL*Plus son un súper conjunto de los comandos isql*plus.

3.2 Producción de una salida legible con isql*plus 3.2.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

3.2 Producción de una salida legible con isql*plus 3.2.3 Efectos interactivos del isql*plus (& y &&) En isql*plus, se pueden usar variables de sustitución de tipo ampersand (&) simple para almacenar valores en forma temporal. La utilización de variables de sustitución sirve a varios propósitos, entre ellos:? Especificar un rango de fechas dentro del cual se efectuarán los cálculos.? Reportar al usuario solamente los datos que le son relevantes.? Identificar datos para un área determinada.? Pasar valores de una sentencia SQL a otra.? Obtener el ingreso de parámetros desde un archivo en lugar de solicitarlos al usuario.? Cambiar dinámicamente encabezados y pies de páginas. Nota: isql*plus no soporta chequeos de validación sobre lo que ingresa el usuario. Variables de Sustitución de Tipo Ampersand (&) Simple Cuando se ejecuta una consulta, con frecuencia los usuarios desean restringir dinámicamente los datos devueltos. isql*plus provee esta flexibilidad mediante el uso de variables. Se debe usar el signo ampersand (&) para identificar a cada variable en una sentencia SQL. No es necesario definir el valor para cada variable. (1) &variable_usuario: indica una variable en una sentencia SQL. Si la variable no existe, isql*plus le solicita al usuario un valor. isql*plus descarta la nueva variable una vez que ésta es usada. Con un ampersand simple, el usuario es interrogado cada vez que se ejecuta el comando, para evitar tener que ingresar el valor de una variable de sustitución cada vez que se ejecute el comando, se debe utilizar un doble ampersand (&&), lo que produce que el valor ingresado la primera vez que se ejecuta el comando, se almacene para toda la sesión.

3.2 Producción de una salida legible con isql*plus 3.2.4 Definición de Variables Se pueden definir variables de usuario antes de ejecutar una sentencia SELECT. isql*plus provee un comando para definir e inicializar variables del usuario: DEFINE (1). Guía? El comando DEFINE creará una variable si la misma no existe, y si existe la redefinirán automáticamente.? Cuando se usa el comando DEFINE, se deben utilizar apóstrofos para encerrar una cadena de caracteres que contenga un espacio en blanco. El Comando UNDEFINE Las variables permanecen definidas hasta que:? Se aplica el comando UNDEFINE sobre una variable.? Se termina la sesión de isql*plus. Cuando se aplica UNDEFINE sobre una variable, se pueden verificar los cambios con el comando DEFINE. Cuando finaliza la sesión isql*plus, se pierden las variables definidas en la misma. En la figura (2), se muestra un ejemplo en donde se define, inicializa, usa y elimina una variable de usuario.

32 Producción de una salida legible con isql*plus 3.2.5 El comando VERIFY Para confirmar los cambios en la sentencia, se usa el comando SET VERIFY de isql*plus. Si SET VERIFY está configurado con el valor ON, obliga a isql*plus a mostrar el texto del comando antes y después que el mismo reemplace las variables de sustitución por sus valores. (1) Recuerde que en una cláusula WHERE, los valores de tipo fecha y carácter deben estar encerrados entre apóstrofos. La misma regla se aplica a la sustitución de variables. A fin de evitar el ingreso de los apóstrofos en tiempo de ejecución, se debe encerrar, en la misma sentencia SQL, al ampersand (&) y a la variable dentro de apóstrofos. (2) Las variables de sustitución se pueden usar no solamente en la cláusula WHERE de una sentencia SQL, sino que además pueden usarse para sustituir cláusulas ORDER BY, nombres de tablas, nombres de columnas, expresiones, texto o sentencias SELECT completas(3).

3.2 Producción de una salida legible con isql*plus 3.2.6 Selección de parámetros del isql*plus En isql*plus se puede configurar el entorno de trabajo para cada sesión abierta a través de las Variables de Sistema. Existen dos formas de personalizar el entorno de trabajo, una es a través de la pantalla Variables del Sistema que se encuentra dentro de la opción Preferencias (1) y la otra es utilizando el comando SET (2). SET system_variable value Todas las variables de sistema toman valores por defecto cuando se inicia una sesión. - Link de ayuda: https://helot.cs.cf.ac.uk

3.2 Producción de una salida legible con isql*plus 3.2.7 AP: Consultas con condiciones Interactivas Laboratorio 3.2.7 Consultas con condiciones Interactivas Utilización de variables de sustitución isql*plus con el fin de dar la posibilidad al operador de modificar la/s condición/es de búsqueda/s. Duración Estimada: 40 min. 3.2 Producción de una salida legible con isql*plus 3.2.8 AP: Consultas con Campos Interactivos Laboratorio 3.2.8 Consultas con Campos Interactivos Utilización de variables de sustitución en isql*plus con el fin de dar la posibilidad al operador de elegir tanto las tablas como sus respectivas columnas a mostrar. Duración Estimada: 20 min

3.2 Producción de una salida legible con isql*plus 3.2.9 AI: Efectos interactivos de isql*plus con & Siga los pasos indicados en esta actividad para practicar la interacción de usuario con isql*plus.

3.2 Producción de una salida legible con isql*plus 3.2.10 AI: Efectos interactivos de isql*plus con && Siga los pasos indicados en esta actividad para practicar la interacción de usuario con isql*plus.

32 Producción de una salida legible con isql*plus 3.2.11 Síntesis SQL*Plus es la herramienta nativa de Oracle9i para interactuar con la base de datos. SQL*Plus soporta todas las sentencias SQL y posee comandos propios para dar formato y para mejorar la utilización de la herramienta. En Oracle9i, SQL*Plus incluye comandos que dan soporte a la administración de base de datos. Utilizando esta herramienta, es posible producir sentencias SQL interactivas y reportes con determinado formato de salida. SQL*Plus manipula su propio buffer donde almacena sentencias SQL. Es posible editar el buffer utilizando comandos de edición SQL*Plus. El comando DESCRIBE es utilizado para recuperar información acerca de una tabla, vista, función o procedimiento. Múltiples comandos SQL y SQL*Plus pueden ser almacenados en un archivo y ejecutados como una unidad. Tales archivos se denominan scripts. En SQL*Plus, el comando SET es utilizado para configurar el ambiente de trabajo. El comando COLUMN es utilizado para definir las características de las columnas presentes en una consulta SQL. Es posible definir variables en SQL*Plus. Variables también pueden ser utilizadas en sentencias SQL. Determinados valores serán aceptados como entrada de usuario cuando la sentencia SQL es ejecutada. Variables definidas en SQL*Plus siempre poseen el tipo de dato CHAR. isql*plus es la interfase web de SQL*Plus. isql*plus consiste de tres capas: la capa cliente (browser), la capa intermedia (Oracle HTTP Server e isql*plus Server), y la capa de base de datos (base de datos y Oracle 9i y Oracle Net). Ciertos comandos SQL*Plus no se encuentran disponibles en isql*plus.