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



Documentos relacionados
6- Combinación de tablas

4- Uso de sentencias para el envió y extracción de datos

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

5- Uso de sentencias avanzadas

10 - Desencadenadores.

Modelamiento y Diseño de Base de Datos

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

Consultas con combinaciones

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

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

Práctica 3. Consultas SQL

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

Tema: USO DE COMBINACIONES EXTERNAS.

1. DML. Las subconsultas

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

MANUAL BÁSICO DEL LENGUAJE SQL

SQL (Structured Query Language)

Bases de Datos 2. Teórico

Bases de Datos SQL - Ejemplos

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

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

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Trabajos de Ampliación. Bases de datos NoSQL.

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

Sistemas de Bases de Datos II

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Base de datos relacional

SQL Server FEMEPA SQL Server 2000

Bases de Datos: Structured Query Language (SQL)

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Tema: Combinación de tablas

Ejercicios SQL - Select TutorialesNET Versión Revisión 1 25 de julio de 2015

Crear BD en. Isis Bonet Cruz, PhD

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

T12 Vistas y tablas temporales

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

Procedimientos para agrupar y resumir datos

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.

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

select nombre from profesores where categoria='aso6';

2- Creación de tablas y manejos de datos.

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

Curso SQL Nivel Avanzado 1. Miguel Jurado García

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) <SELECT1> UNION <SELECT2> UNION <SELECTN> Copyright 2006, 2007 Instituto Gala

Modelos y Bases de Datos

Base de Datos Práctica 1.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Sistemas de Datos Curso: Ernesto Chinkes. SQL Básico Algebra Relacional

Paso del E-R a tablas

6 - Recuperar algunos registros (where)

CONSULTAS BASICAS EN SQL SERVER

Tema: SUBCONSULTAS Y CREACION DE VISTAS.

BASE DE DATOS RELACIONALES

MATERIAL 2 EXCEL 2007

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 6: Iniciación a SQL

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

Sub consultas avanzadas

8 SQL SERVER 2008 RA-MA

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

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

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

Documento Informativo

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

ÍNDICE PRIMERA PARTE... 17

Bases de Datos Relacionales

Tema: Uso de sentencias SQL

Tutorial de MS Access Un sistema de Bases de Datos Relacional. Profesores: Hugo Mora, Ignacio Casas

USANDO SQL. EN BASE DE Ooo.

Restricciones (constraints) FOREIGN KEY

Vamos a ver las dos formas básicas de arrancar PowerPoint.

Vistas en postgresql

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Repaso de Conceptos Básicos de Bases de Datos

Informática I Notas del curso

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

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

BASES DE DATOS TEMA 4. SQL. UN LENGUAJE DE CONSULTA COMERCIAL PARA BASES DE DATOS RELACIONALES Contenidos generales

Formato para prácticas de laboratorio

EJERCICIO SOBRE EMPRESA DE MATERIALES DE CONSTRUCCIÓN

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

A.1. Definiciones de datos en SQL

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

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

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

Manual de ACCESS Intermedio

Modelos y Bases de Datos

UNIVERSIDAD TECNOLÓGICA ECOTEC FACULTAD DE SISTEMAS COMPUTACIONALES SYLLABUS. Base de Datos II CODIGO COM 338 CREDITOS 3

Módulo 8: Ofimática básica. Unidad didáctica 2: Conceptos fundamentales en un gestor de base de datos. Access

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales.

ESPOCH ESCUELA DE MEDICINA HERNANDEZ MAYRA FORMULAS Y DUNCIONES BASICAS ESPOCH

Restricciones de Integridad

Base de Datos SQL Server

Oracle Básico PL/SQL

4. Modelo Relacional: Manipulación de los datos.

Manual de rol gestor de GAV para moodle 2.5

FUNCIONES EN SQL SERVER

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

Tema 4. Manipulación de datos con SQL

Transcripción:

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

Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos I en el desarrollo de sus prácticas de laboratorios, haciendo uso de este antes, durante y después de la práctica, de tal forma que ofrece un método facilitador en su proceso de enseñanza/aprendizaje durante esta asignatura. En el desarrollo de esta asignatura se ha designado realizar las prácticas en 16 sesiones semanales de laboratorios, los que incluyen 11 prácticas, dos parciales y un proyecto final durante los cuales, el estudiante aplicará los conceptos y las técnicas fundamentalmente necesarias para el dominio de programas para el uso, configuración y administración de SQL Server 2008 o superior. Todas las guías de laboratorio están estructuradas de la siguiente forma: - Objetivos - Materiales y equipos - Introducción teórica - Procedimiento - Bibliografía - Hoja de evaluación (En caso de que la actividad sea evaluada)

Facultad: Ingeniería. Escuela: Computación. Asignatura: Base de datos I. Tabla de Contenido Pág Guía 6. Combinación de tablas. Guía 6 Contenido a 1 ----------------------------------------------- 4 Objetivos ----------------------------------------------- 4 Materiales y equipos ------------------------------------ 4 Introducción -------------------------------------------- 4 JOIN ---------------------------------------------------- 4 INNER JOIN (interna)------------------------------------ 5 LEFT JOIN o LEFT OUTER JOIN (externa)------------------- 7 RIGHT JOIN o RIGHT OUTER JOIN (externa)----------------- 9 FULL JOIN o FULL OUTER JOIN (externa)------------------- 10 CROSS JOIN (cruzado)------------------------------------ 11 Ejercicios ---------------------------------------------- 12 Investigación ------------------------------------------- 14 Bibliografía -------------------------------------------- 14

Tema: Combinación de tablas. Contenidos En la guía se presentarán conceptos que le permitan a los estudiantes poder hacer uso de Combinación de tablas como las que se mencionan a continuación (JOIN, INNER JOIN, LEFT JOIN o LEFT OUTER JOIN, RIGHT JOIN o RIGHT OUTER JOIN, FULL JOIN o FULL OUTER JOIN Y CROSS JOIN) Objetivo Específico Utiliza sentencias para unir los datos de diferentes tablas. Materiales y Equipo SQL SERVER 2008 o superior. Guía de práctica. https://technet.microsoft.com/eses/library/ms191430(v=sql.105).aspx Introducción Teórica Una vez se tienen creada la base de datos y hemos creado las relaciones, ahora debemos aprender a realizar consultas de dos o más tablas para obtener resultados solicitados, los cuales pueden tener condiciones WHERE o HAVING, y otros operadores como AVG, SUM, GROUP BY y los operadores AND y OR. JOIN La sentencia JOIN en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de

Consultas Estructurado (SQL) hay tres tipos de JOIN: interno, externo y cruzado. En casos especiales una tabla puede unirse a sí misma, produciendo una auto-combinación, SELF-JOIN. Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y, generalizando, es una función de composición. Usaremos las siguientes tres tablas para probar las diferentes opciones, al final de esta guía encontraras el script para crear las tablas con sus registros. INNER JOIN (interna) Con esta operación se calcula el producto cruzado de todos los registros; así cada registro en la tabla A es combinado con cada registro de la tabla B; pero sólo permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el tipo de JOIN más utilizado, por lo que es considerado el tipo de combinación predeterminado. Es necesario tener especial cuidado cuando se combinan columnas con valores nulos NULL, ya que el valor nulo no se combina con otro valor o con otro nulo, excepto cuando se le agregan predicados tales como IS NULL o IS NOT NULL.

Vamos a realizar el primer ejemplo combinando las tablas personas y pais, y mostraremos los campos de la tabla personas: nombre, apellido y nacimiento, y de la tabla país: país. Si ejecutamos el siguiente comando: USE SCRUM SELECT personas.nombre,personas.apellido,personas.nacimiento,pais.pais FROM personas INNER JOIN pais ON personas.id_pais = pais.id_pais Observe que los ocupamos el nombre las tablas unidas al de los campos, para identificar cada uno de ellos, además se usa la palabra clave ON la cual sirve para unir las tablas pro su campo de relación. Podemos apreciar que en el resultado aparece el nombre del país y no su código, además solo presentan los datos que cumplen exactamente con la condición de unión. Otro ejemplo es para unir tres tablas a la vez, en este caso aumentaremos una INNER JOIN más a la consulta y una condición ON también. USE SCRUM

SELECT personas.nombre,personas.apellido,personas.nacimiento,roles.rol,pais. pais FROM personas INNER JOIN pais ON personas.id_pais = pais.id_pais INNER JOIN roles ON personas.id_rol = roles.id_rol El resultado es la unión de las tres tablas, la opción INNER JOIN es la más usada, sin embargo hay otras opciones. LEFT JOIN o LEFT OUTER JOIN. (externa) El conjunto de resultados de una combinación externa izquierda incluye todas las filas de la tabla de la izquierda especificada en la cláusula LEFT OUTER y no sólo aquellas en las que coincidan las columnas combinadas. Cuando una fila de la tabla de la izquierda no tiene filas coincidentes en la tabla de la derecha, la fila asociada del conjunto de resultados contiene valores NULL en todas las columnas de la lista de selección que procedan de la tabla de la derecha. Si ejecutamos la siguiente consulta con la base de datos ejemplo: USE SCRUM SELECT personas.nombre,personas.apellido,personas.sueldo,pais.pais FROM pais

LEFT JOIN personas ON personas.id_pais = pais.id_pais

1 Al usar esta opción nos permite unir todos los datos de la tabla de la izquierda al LEFT JOIN con todos los datos que coincidan o no con los de la derecha, por ese motive los países que no tiene correlación en la otra tabla aparecen con nulos. En este caso hay 7 países que no tiene datos registrados en la tabla personas. Es muy importante tener en cuenta la posición de las tablas, ya que si cambiamos el orden, se cambiaria el resultado. RIGHT JOIN o RIGHT OUTER JOIN. (externa) Una combinación externa derecha es lo contrario de una combinación externa izquierda. Se devuelven todas las filas de la tabla de la derecha. Cada vez que una fila de la tabla de la derecha no tenga correspondencia en la tabla de la izquierda, se devuelven valores NULL para la tabla de la izquierda. Para probar esta opción utilizaremos la siguiente consulta.

2 Base de datos I, Guía 6 USE SCRUM SELECT personas.nombre,personas.apellido,personas.sueldo,roles.rol FROM personas RIGHT JOIN roles ON personas.id_rol = roles.id_rol El resultado mostrara que se a combinado la tabla derecha con la izquierda y como la tabla roles tiene un registro que no corresponde con la tabla personas, ha colocado un valor nulo. FULL JOIN o FULL OUTER JOIN. (externa) Una combinación externa completa devuelve todas las filas de las tablas de la izquierda y la derecha. Cada vez que una fila no tenga coincidencia en la otra tabla, las columnas de la lista de selección de la otra tabla contendrán valores NULL. Cuando haya una coincidencia entre las tablas, la fila completa del conjunto de resultados contendrá los valores de datos de las tablas base. Probemos esta opción con la siguiente consulta. USE SCRUM SELECT personas.nombre,personas.apellido,personas.sueldo,pais.pais FROM pais

Base de datos I. Guía 6 3 FULL JOIN personas ON personas.id_pais = pais.id_pais La consulta devuelve todo el registro de ambas tablas, y lo que no corresponde pondrá NULL. CROSS JOIN. (cruzado) Una combinación cruzada que no tenga una cláusula WHERE genera el producto cartesiano de las tablas involucradas en la combinación. El tamaño del conjunto de resultados de un producto cartesiano es igual al número de filas de la primera tabla multiplicado por el número de filas de la segunda tabla. Cross Join no necesita que se le incorpore la clausula ON, En el siguiente ejemplo genera una combinación cruzada de las tablas personas y país USE SCRUM SELECT personas.nombre,personas.apellido,personas.nacimiento,pais.pais FROM personas CROSS JOIN pais

4 Base de datos I, Guía 6 Sin embargo esta consulta nos dará 150 resultados que se obtiene de multiplicar los registros de una tabla con otra. Para mejorar esta consultado le incorporaremos un WHERE y la consulta tendrá como resultado el equivalente a un INNER JOIN. SELECT personas.nombre,personas.apellido,personas.nacimiento,pais.pais FROM personas CROSS JOIN pais WHERE personas.id_pais = pais.id_pais Ahora es importante el probar consultadas incorporando más condiciones, para lo cual realice las siguientes consultas y verifique su resultado y comportamientos para cada caso. Ejercicios Guía Pruebe 3 las opciones de unión incorporando las condiciones vistas en las dos guías anteriores, como WHERE, Guía Pruebe 4 si pueden realizar uniones para UPDATE, DELETE e INSERT fía Realice pruebas con la base de datos NORDWIND.

Datos ejemplo: Base de datos I. Guía 6 5 CREATE DATABASE SCRUM USE SCRUM CREATE TABLE roles ( id_rol int IDENTITY(1,1), rol varchar(20) not null, CONSTRAINT PK_roles PRIMARY KEY (id_rol) ) INSERT INTO roles VALUES ('ScrumMaster') INSERT INTO roles VALUES ('ProductOwner') INSERT INTO roles VALUES ('Team') INSERT INTO roles VALUES ('Steakholders') INSERT INTO roles VALUES ('Tester') CREATE TABLE pais ( id_pais int IDENTITY(1,1), pais varchar(25), CONSTRAINT PK_pais PRIMARY KEY (id_pais) ) INSERT INTO pais VALUES ('El Salvador') INSERT INTO pais VALUES ('Guatemala') INSERT INTO pais VALUES ('Costa Rica') INSERT INTO pais VALUES ('Japon') INSERT INTO pais VALUES ('Estados Unidos') INSERT INTO pais VALUES ('Argentina') INSERT INTO pais VALUES ('Mexico') INSERT INTO pais VALUES ('Uruguay') INSERT INTO pais VALUES ('Canada') INSERT INTO pais VALUES ('Chile') CREATE TABLE personas ( id_persona int IDENTITY(1,1), apellido varchar(40) not null, nombre varchar(40) not null, sueldo smallmoney, direccion varchar(100), celular varchar(8), sexo varchar(1), nacimiento date, id_rol int not null, id_pais int not null, CONSTRAINT PK_persona PRIMARY KEY (id_persona), CONSTRAINT FK_rol FOREIGN KEY (id_rol) REFERENCES roles(id_rol),

6 Base de datos I, Guía 6 CONSTRAINT FK2_pais FOREIGN KEY (id_pais) REFERENCES pais(id_pais) ) INSERT INTO personas VALUES ('Hernandez Mancia','Marielos',958,'','67567555','F','1986/7/4',3,4) INSERT INTO personas VALUES ('Perez Juarez','Joaquin',850,'','34567564','M','1969/9/2',3,1) INSERT INTO personas VALUES ('Solis Castro','Eduardo',600,'','12327523','M','1972/3/11',3,1) INSERT INTO personas VALUES ('Ramos Nieto','Jorge',550,'','34567174','M','1972/10/4',4,1) INSERT INTO personas VALUES ('Hernandez Carias','Johanna',1800,'','34234809','F','1952/3/4',1,1) INSERT INTO personas VALUES ('Romero Peña','Manuel Alberto',0,'','34567342','M','1969/12/4',2,1) INSERT INTO personas VALUES ('Garcia Alvarado','Roxana',1600,'','34345564','F','1970/4/4',1,1) INSERT INTO personas VALUES ('Torres Castro','Alfredo',450,'','34565674','M','1980/2/9',3,5) INSERT INTO personas VALUES ('Romero Peña','Verenice',400,'','34567589','F','1978/3/17',3,1) INSERT INTO personas VALUES ('Martinez','Evelyn Roxana',340,'','34556764','F','1972/8/14',3,5) INSERT INTO personas VALUES ('Siguenza','Eduardo',1120,'','21467564','M','1975/10/9',3,1) INSERT INTO personas VALUES ('Alas Duran','Martin',1200,'','34562364','M','1972/3/4',3,1) INSERT INTO personas VALUES ('Jerez M.','Jose Carlos',589,'','34563352','M','1972/3/6',4,1) INSERT INTO personas VALUES ('Bolaños Cea','Sandra',244,'','67557564','F','1968/3/4',3,1) INSERT INTO personas VALUES ('Cuestas D.','Jenny Maria',1089,'','34567564','F','1972/9/14',3,4) Investigación Complementaria Investigar las siguientes comando que se detallan a continuación: Guía 3 - Concepto, - Sintaxis, - Ejemplo. o Sub-Consultas con operadores de comparación. o Sub-Consultas usadas en lugar de una expresión. o View o Vistas. Guía 4 fía Bibliografía Peter Rob, Carlos Coronel, SISTEMAS DE BASES DE DATOS, THOMSON, México, 2006 Thomas Connolly, Carolyn Begg, SISTEMAS DE BASES DE DATOS, PERSON, España, 2007 Abraham Silberschatz, FUNJDAMENTOS DE BASES DE DATOS, MCGRAW-HILL, Edición Digital, 2006 Salazar Francisco, APRENDA SQL SERVER 2012. Ross Mistry and Stacia Misner. Introducing Microsoft SQL Server 2012. MicroSoft Press. Disponible digitalmente en Recursos electronicos de la biblioteca en Google Académico. Guía 3 Guía 4 fía