CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas

Slides:



Advertisements
Presentaciones similares
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.
Advertisements

integridad referencial
Rocío Contreras Águila Primer Semestre 2010
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
Curso de Microsoft® Access® 2010
Controlando el Acceso a los Usuarios
Mejoras a la Cláusula GROUP BY
Consultas anidadas.
Teórico: Algebra Relacional
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.
FORMULARIOS EN ACCES Los formularios sirven para definir pantallas, mostrar y editar los registros de una tabla o consulta. Se puede acceder a todos ellos.
CAPITULO 1 Escribiendo Sentencias SELECT Básicas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Universidad del Cauca – FIET – Departamento de Sistemas
DIVISIÓN DE POLINOMIOS 1
Lenguaje Estructurado de Consultas
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.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 7 Produciendo Salidas Más Legibles con iSQL*Plus.
UNITA - IBARRA TRIGGERS
HERRAMIENTAS DE EXCEL ORDENAR Y FILTAR.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
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,
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Desplegando datos de múltiples tablas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
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
Bases de Datos Sql.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Expresiones algebraicas equivalentes
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.
Outer Joins Taller de Base de Datos.
Ingeniería de Sistemas y Modelamiento.
Uso de los JOINS en MYSQL
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
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.
Tipos de Datos.
 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.
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.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
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.
HINTS ¿Cómo afectar el plan de ejecución? Por defecto, el SGBD tomará en cuenta el camino de ejecución (Execution Path) determinado por el optimizador.
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.
Lenguaje Estructurado de Consultas
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.
Copyright  Oracle Corporation, All rights reserved. 4 Visualización de datos de varias tablas.
SQL: DDL.
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.
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.
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.
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 VI Trabajando con subconsultas.
DML Transact SQL Sesión V Consultando múltiples tablas.
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:

CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas 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 sentencias SELECT que acceden datos de más de una tabla usando JOINs de igualdad (equijoin) y de no igualdad (nonequijoin) Ver datos que generalmente no se obtienen con JOINs tradicionales, a través de JOINs externos (outer join) Reunir una tabla consigo misma en un self join Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Examen previo Desarrollar un corto examen de cinco (5) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria. Realizar una corta realimentación de cada una de las preguntas. Tema: Displaying Data from Multiple Tables Universidad del Cauca – FIET – Departamento de Sistemas

Obtener datos desde múltiples tablas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Producto cartesiano Se presenta cuando: No se escribe una condición de join Se escribe una condición de join no valida El resultado de un producto cartesiano consiste en que todas las filas de la primer tabla se reúnen con todas las tablas de la segunda fila Para evitar un producto cartesiano siempre se debe colocar una condición de join valida, en la cláusula WHERE o con la cláusula JOIN Universidad del Cauca – FIET – Departamento de Sistemas

Generando un producto cartesiano 14 filas … 4 filas 4 x 14 filas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Tipos de JOINs En versiones 8i o anteriores Equijoin Nonequijoin Outer join Self join Joins basados en el estándar SQL99 Cross join Natural join Cláusula USING Outer join con opción izquierda, derecha y ambos Condiciones arbitrarias para joins externos Universidad del Cauca – FIET – Departamento de Sistemas

Join de tablas usando sintaxis vieja SELECT Table1.Columna1, Table2.Columna2 FROM Table1, Table2 WHERE Table1.ColumnaR = Table2.ColumnaR La condición de JOIN se escribe en la cláusula WHERE Coloque el nombre de la tabla para las columnas que se llaman igual en dos o más tablas (evitar ambigüedades) Se recomienda usar siempre el nombre de las tablas para calificar las columnas porque mejora el rendimiento de la consulta Para reunir N tablas se necesitan un mínimo de N-1 condiciones de JOIN Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas EquiJoin SELECT Table1.Columna1, Table2.Columna2 FROM Table1, Table2 WHERE Table1.ColumnaR = Table2.ColumnaR La condición de JOIN se da por igualdad de valores en columnas relacionadas Normalmente esta ligado a tablas que contemplan restricciones de integridad referencial a través de un par PK=FK También se denominan Join Interno o simplemente Join Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Ejemplo de un EquiJoin Universidad del Cauca – FIET – Departamento de Sistemas

Condiciones adicionales al Equijoin Uso del operador AND Universidad del Cauca – FIET – Departamento de Sistemas

Uso de alias para las tablas Facilita la lectura de las consultas Se mejora el rendimiento usando los prefijos de las tablas Los alias de las tablas normalmente: Son cortos aunque Oracle permite 30 caracteres Al asignarse en la cláusula FROM se debe usar en toda la instrucción SELECT Deben tener un significado Son validos en la instrucción SELECT actual Universidad del Cauca – FIET – Departamento de Sistemas

Haciendo Join de tres tablas o más Universidad del Cauca – FIET – Departamento de Sistemas

Ejemplo de Join entre tres tablas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Nonequijoins El grado de salario se determina con la tabla que tiene los rangos de los salarios de la compañía Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Nonequijoins En la condición de Join existe un operador distinto al igual (=) Note que salen todos los empleados y cada uno aparece una sola vez con su grado, esto es debido a: En la tabla GradosDeSalarios no existen rangos traslapados Ningún empleado gana menos que el menor LimiteInferior ni más que el mayor LimiteSuperior, si fuera así no saldría en la consulta Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Outer Joins Con un equijoin no aparece el departamento de OPERACIONES porque no hay empleados en ese departamento Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis del Outer Join SELECT Table1.Columna1, Table2.Columna2 FROM Table1, Table2 WHERE Table1.ColumnaR (+) = Table2.ColumnaR WHERE Table1.ColumnaR = Table2.ColumnaR (+) Un Outer Join retorna las filas del equijoin y otras, que no encuentran concordancia entre los valores de las tablas. El operador de Join es el signo más (+) El operador de Join normalmente se ubica en el lado del Join que tiene deficiencia de información Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Ejemplo de Outer Join El operador Outer Join sólo puede aparecer una vez Una condición que involucra Outer Join no puede usar el operador IN o estar asociada a otra condición que usa el operador OR Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Self Join Un empleado es jefe de otros empleados Consulte el nombre del empleado y el de su jefe en una misma fila de resultados Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Ejemplo de Self Join En este caso son muy útiles los alias de tablas Observe que LOPEZ no tiene jefe y no aparece en los resultados (sólo 13 filas y NO 14) Universidad del Cauca – FIET – Departamento de Sistemas

Join en tablas usando la sintaxis SQL99 SELECT Table1.Columna1, Table2.Columna2 FROM Table1 [CROSS JOIN Table2] | [NATURAL JOIN Table2] | [JOIN Table2 USING (ColumnaR)] | [JOIN Table2 ON ( Table1.ColumnaR OP Table2.ColumnaR )] | [LEFT | RIGHT | FULL OUTER JOIN Table2 ON ( Table1.ColumnaR = Table2.ColumnaR )]; CROSS JOIN Retorna el producto cartesiano NATURAL JOIN Retorna un equijoin usando las columnas que en las dos tablas tienen el mismo nombre USING Retorna un equijoin usando las columnas que explícitamente se indican ON Retorna un join con la condición que se establezca, OP es un operador por ejemplo =, >, <, >=, <=, <>, BETWEEN Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas CROSS JOIN El resultado es un producto cartesiano La ventaja es que es explicito y no un posible error … Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas NATURAL JOIN Se basa en todas las columnas que tienen el mismo nombre en las dos tablas Las columnas que tienen el mismo nombre en las dos tablas deben tener el mismo tipo de dato, de lo contrario Oracle retorna un error Las columnas que definen el natural join no deben llevar cualificados de tabla, por ejemplo Dep_Id Universidad del Cauca – FIET – Departamento de Sistemas

NATURAL JOIN y la cláusula WHERE Universidad del Cauca – FIET – Departamento de Sistemas

Creando Joins con la cláusula USING Se usa para realizar un equijoin con las columnas que explícitamente se desea establecer concordancia Las columnas del USING no deben llevar nombre de tabla o alias La cláusula NATURAL JOIN y USING son mutuamente excluyentes Universidad del Cauca – FIET – Departamento de Sistemas

Creando Joins con la cláusula ON Sirve para establecer condiciones de igualdad (equijoin) o de no igualdad (nonequijoin) Ayuda a separar la condición de join de otras restricciones de búsqueda Hace el código más fácil de entender Universidad del Cauca – FIET – Departamento de Sistemas

Uso de Joins con la cláusula ON Universidad del Cauca – FIET – Departamento de Sistemas

Uso de Joins para tres tablas Universidad del Cauca – FIET – Departamento de Sistemas

Join interno (inner) y Join externo (outer) En SQL99 la reunión de dos tablas retorna solo las filas que corresponden al join interno o equijoin Una reunión que retorne más filas de las establecidas por el equijoin es un join externo (outer join) izquierdo o derecho Una reunión que retorne las filas del join interno y las filas adicionales de la reunión externa izquierda y derecha es una reunión externa completa (full outer join) Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas LEFT OUTER JOIN Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas RIGHT OUTER JOIN Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas FULL OUTER JOIN Universidad del Cauca – FIET – Departamento de Sistemas

FULL OUTER JOIN y la cláusula WHERE Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Resumen En esta lección usted debió aprender: A ejecutar consultas de datos desde múltiples tablas con la sintaxis “vieja” de Oracle 8i y versiones previas A ejecutar consultas de datos desde múltiples tablas con la sintaxis SQL99 A distinguir los tipos de joins: equijoin, nonequijoin, outer join, self join, cross join, natural join, full outer join Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Practica 4 Realizar una práctica de once (11) puntos que permite practicar: El uso de equijoins El uso de nonequijoins El uso de outer joins El uso de self joins Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Examen posterior Desarrollar un examen de quince (15) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria. Realizar una corta realimentación de cada una de las preguntas. Tema: Displaying Data from Multiple Tables Universidad del Cauca – FIET – Departamento de Sistemas