Consultas con combinaciones



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

1. DML. Las subconsultas

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

Vistas en postgresql

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

SQL (Structured Query Language)

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

CONSULTAS BASICAS EN SQL SERVER

Tema 4. Manipulación de datos con SQL

A.1. Definiciones de datos en SQL

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Sub consultas avanzadas

Procedimientos para agrupar y resumir datos

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

8 SQL SERVER 2008 RA-MA

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

MANUAL BÁSICO DEL LENGUAJE SQL

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

Bases de Datos Relacionales

Guía de implementación Softland en SQL Server Versión 1.0

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.

Práctica A: Trabajo con subconsultas

T12 Vistas y tablas temporales

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Base de datos relacional

Microsoft SQL Server 2005

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

SQL Server FEMEPA SQL Server 2000

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

6- Combinación de tablas

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Modelos y Bases de Datos

Procesamiento y Optimización de consultas Material Preliminar en preparación

Práctica 3. Consultas SQL

Tecnología de la Información y la Comunicación. Base de datos. Consultas

Manual de ACCESS Intermedio

Trabajos de Ampliación. Bases de datos NoSQL.

PRACTICA DE ADMINISTRACION DE BASES DE DATOS

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

Bases de Datos 2. Teórico

El lenguaje SQL es un lenguaje estándar para el acceso y

Unidad. Lenguaje SQL. (Structured Query Language)

Tema: USO DE COMBINACIONES EXTERNAS.

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Oracle 12c DISEÑO Y PROGRAMACIÓN

Operación Microsoft Access 97

Bases de datos relacionales y el modelo entidad-relación

- Bases de Datos - - Diseño Físico - Luis D. García

1

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Curso Online de Microsoft

Bases de Datos 2. Teórico

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS RELACIONALES

Tema: SUBCONSULTAS Y CREACION DE VISTAS.

Diseño de bases de datos Diapositiva 1

Guía práctica de SQL

LiLa Portal Guía para profesores

5- Uso de sentencias avanzadas

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

select nombre from profesores where categoria='aso6';

PRÁCTICA B2. Definición y modificación de datos en SQL

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

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

Sistemas de Bases de Datos II

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

Operación de Microsoft Excel

Capítulo 12: Indexación y asociación

Práctica A: Procedimientos para agrupar y resumir datos

CURSO DE SQL SERVER 2005

ÍNDICE PRIMERA PARTE... 17

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

Creación y administración de grupos de dominio

Tutorial de SQL - El comando SELECT

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

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Introducción. Componentes de un SI. Sistema de Información:

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

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

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

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

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

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Formularios. Formularios Diapositiva 1

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

3 Consultas y subconsultas

Charla N 6: Utilidades de Consulta de datos.

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Operación de Microsoft Word

Tablas internas 1-12

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

Restricciones de Integridad

Transcripción:

UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden recuperar datos desde dos o más tablas basados en relaciones lógicas entre las tablas. Se pueden especificar tanto en la cláusulas FROM o WHERE. Cuando SQL Server procesa combinaciones, el motor de consultas elige el método más eficiente (de entre varias posibilidades) para procesar la combinación. Aunque la ejecución física de varias combinaciones usa diferentes caminos, se respeta la siguiente secuencia lógica: Se aplican las condiciones de combinación de la cláusula FROM. Se aplican las condiciones de combinación y las condiciones de búsqueda de la cláusula WHERE. Se aplican las condiciones de búsqueda de la cláusula HAVING. Esta secuencia puede, algunas veces, influenciar el resultado de la consulta si se mueven las condiciones entre la cláusulas FROM y WHERE. 1

Consultas con combinaciones (join) Las tablas combinada producen un solo resultado que incorpora filas y colunas de 2 o mas tablas. Se agregan 2 palabras en la clausula, JOIN y ON La palabra JOIN indica que tablas de combianara y como se combinaran La palabra ON especifica que columnas de las tablas se tienen en comun Cuando empleas una combinacion debes considerar lo siguiente: Siempre que sea posible, especifica las condiciones de la combinacion basadas en llaves primaras o foraneas,pero puedes usar otra si deseas Con el proposito de evitar expansion de datos, es recomendable referencia la llave completa en la clausula ON si es una tabla con llaves compuestas. En general, combine todas las columnas que identifican a las filas para preveer expansion de datos. Utilice las columnas comunes para especificar las combinaciones. Esta tablas deben tener tipos de datos compatibles Referencia el nombre de la tabla si los nombres de las columnas son los mismos Si es posible, limita el numero de tablas de una combinacion, porque entre mas tablas combines, SQL tardará mas en procesar la consulta. Puedes combinar una o mas tablas con una sola clausula SELECT Combinaciones Inner Las combinaciones INNER combinan tablas comparando valores en columnas que son comunes en ambas tablas. SQL retorna solo las filas que cumplen con los valores comunes de la combinación. Porque usar combinaciones INNER Utiliza combinacines inner cuando se desea obtener informacion de 2 tablas en un solo resultado. Cuando utilice estas combinaciones considere lo siguiente: Las combinaciones inner son el default de SQL Server. Puede abreviar INNER JOIN como JOIN. Especifica las columnas que se quieren mostrar en el resultado incluyendo nombres adecuados en la seccion SELECT. No use valores null como condicion del JOIN porque los valores nulos no se pueden comparar con otros 2

Combinaciones Outer SQL Server soporta tres tipos de combinaciones outer: izquierda (left), derecha (right), y completa (full). Todas las filas recuperadas desde la tabla izquierda son referenciadas con una combinación outer izquierda, y todas las filas de la tabla derecha son referenciadas en una combinación outer derecha. Todas las filas de ambas tablas son retornadas en una combinación outer completa. Combinaciones OUTER Las combinaciones outer derecha o izquierda permiten combinar las filas de 2 tablas, y ademas agregar cualquier fila no combinada de la tabla izquierda o derecha especificada en la clausula JOIN. Las filas que no empatan en la condicion despliegan NULL en el resultado. Se puede emplear combinaciones OUTER completas para mostar todas las filas de las tablas combinadas, independientemente de si las tablas tienen o no valores que empaten. Porque utilizar clausulas LEFT OUTER JOIN o RIGHT OUTER JOIN Utiliza estas combinaciones cuando necesites una lista completa de datos alamacenados en una de las tablas combinadas, ademas de los datos que empatan en la condicion JOIN. Cuando emplees estas combinaciones hay que tener las siguientes consideraciones: Utilizar combiniaciones outer para mostrar todas las filas de la primera tabla ( la tabla a la izquierda de la expresion). Si inviertes el orden en el cual las tablas estan organizadas en la clausula FROM, el resultado será el mismo que si se emplea el right outer join Utilizar las combinaciones right outer join para mostrar todas las filas dela segunda tabla nombrada (la tabla de la derecha de la expresion). Si invierte el orden en el cual las tablas se listan en la clausula from, el resultado es el mismo que el de left outer join. Se puede abreviar LEFT OUTER JOIN o RIGHT OUTER JOIN como LEFT JOIN o RIGHT JOIN. 3

Vistas Las vistas se pueden definir como tablas virtuales basadas en una o más tablas o vistas y cuyos contenidos vienen definidos por una consulta sobre las mismas. Esta tabla virtual o consulta se le asigna un nombre y se almacena permanentemente en la BD, generando al igual que en las tablas una entrada en el diccionario de datos. Las vistas permiten que diferentes usuarios vean la BD desde diferentes perspectivas, así como restringir el acceso a los datos de modo que diferentes usuarios accedan sólo a ciertas filas o columnas de una tabla. Desde el punto de vista del usuario, la vista es como una tabla real con filas y columnas, pero a diferencia de esta, sus datos no se almacenan físicamente en la BD. Las filas y columnas de datos visibles a través de la vista son los resultados producidos por la consulta que define la vista. Creacion de vistas La cláusula CREATE VIEW permite la creación de vistas. La cláusula asigna un nombre a la vista y permite especificar la consulta que la define. Su sintaxis es: CREATE VIEW id_vista [(columna, )] AS especificación_consulta; Opcionalmente se puede asignar un nombre a cada columna de la vista. Si se especifica, la lista de nombres de las columnas debe de tener el mismo número de elementos que el número de columnas producidas por la consulta. Si se omiten, cada columna de la vista adopta el nombre de la columna correspondiente en la consulta. Existen dos casos en los que es obligatoria la especificación de la lista de columnas: 1. Cuando la consulta incluye columnas calculadas 2. Cuando la consulta produce nombres idénticos. 4

Tipos de vistas Según el propósito con el que se organizan las vistas, pueden clasificarse en los siguientes tipos: Horizontales o por restricción Verticales o por proyección Subconjuntos de filas/columnas Agrupadas Compuestas Horizontales o por restricción Son las que restringen el acceso de un usuario a únicamente un conjunto de filas de una tabla. Las vistas horizontales son adecuadas cuando la tabla sobre la que se definen contiene datos que relacionan a varias organizaciones o usuarios, proporcionando una tabla privada para cada usuario compuesta únicamente de las filas necesarias para ese usuario en concreto. create view Vista1 as select * from Datos where salario >5000 select * from Vista1 5

Verticales o por proyección Son aquellas que restringen el acceso de un usuario sólo a ciertas columnas de una tabla. El uso de estas vistas es aconsejable cuando los datos de la tabla son compartidos también por varios usuarios diferentes. La diferencia está en que ahora solo necesitamos parte de los campos, no todos. create view Vista3 as select nombre, direccion,telefono from contactos select * from Vista3 Subconjuntos fila / columna Lo más habitual es crear vistas con parte de las filas y parte de las columnas de una tabla. Por ejemplo: create view Vista5 as select nombre,direccion from Contactos where idusuario=1 select * from Vista5 6

Agrupados Son vistas que incluyen una cláusula GROUP BY en la consulta especificada. Estas vistas incluyen siempre una lista de nombres de columna. create view Vista6 as select nombre,sum(salario) as SalarioTotal from Datos group by nombre Compuestas Son vistas creadas a partir de los datos de dos o más tablas. Presentan los datos como una única tabla virtual. Al igual que las anteriores se utilizan frecuentemente para facilitar el manejo de consultas complejas de uso frecuente en la base. create view Vista2 as select nombre,direccion from datos Where salario<5000 union select nombre,direccion from datosexternos Where salario>5000 select * from Vista2 7

Actualización a través de las vistas: Para que una vista se pueda actualizar debe existir una relación directa entre las filas y columnas de la vista y las de la tabla fuente. Según el estándar ANSI, se puede actualizar a través de las vistas si la consulta que la define, satisface las siguientes restricciones: 1ª - No especifica DISTINCT 2ª - FROM debe especificar una única tabla 3ª - La lista de selección no puede contener expresiones, columnas calculadas o funciones de columna, solo referencias a columnas simples. 4ª - WHERE no debe incluir subconsultas. 5ª - No debe incluir ni GROUP BY ni HAVING. ejemplo create view Vista7 as select * from Datos where salario<10000 select * from datos select * from Vista7 8

Comprobación de actualizaciones de vistas Para evitar errores se usará la cláusula WITH CHECK OPTION. Añadiendo esta cláusula a la creación de una vista se asegura que las operaciones de inserción y actualización sobre la vista satisfagan el criterio de búsqueda, definido en la cláusula WHERE de la consulta asociada a la vista. De esta forma se asegura que las filas insertadas o actualizadas sean visibles a través de la vista. En caso de que la fila a insertar o modificar no satisfaga la condición del WHERE, la sentencia de actualización falla sin llevarse a cabo la operación. Otras cláusulas para creación de vistas. OR REPLACE: Cuando se necesita modificar la definición de una vista, la única solución es crear una nueva vista con el mismo nombre ya que no existe una sentencia similar a la ALTER TABLE. Para evitar que tener que eliminar la vista y volverla a crear, el motor proporciona esta cláusula, la cual permite sustituir la definición de una vista por otra nueva, es decir, la reemplaza. WITH READ ONLY: Esta cláusula no permite que se ejecuten borrados, actualizaciones o inserciones sobre la vista. Eliminación de vistas Se hace con DROP VIEW id_vista; 9

Ventajas e inconvenientes de las vistas VENTAJAS: - Las consultas con selecciones complejas se simplifican. - Permiten personalizar la BD para los distintos usuarios, de forma que presenten los datos con una estructura lógica para los mismos. - Control de acceso a la BD, haciendo que los usuarios vean y manejen solo determinada información. INCONVENIENTES: Las restricciones referidas a las actualizaciones. La caída del rendimiento cuando se construyen vistas con selecciones complejas. 10