Tema: Combinación de tablas



Documentos relacionados
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

Tema: USO DE COMBINACIONES EXTERNAS.

Práctica A: Trabajo con subconsultas

Tema: SUBCONSULTAS Y CREACION DE VISTAS.

Combinación de varias tablas

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

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

Consultas Combinadas. Las consultas combinadas pueden ser de tres tipos: Combinación interna Combinación externa Uniones

Consultas con combinaciones

6- Combinación de tablas

5- Uso de sentencias avanzadas

SQL Server FEMEPA SQL Server 2000

Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM).

Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM).

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

Tema: Uso de sentencias SQL

Práctica A: Procedimientos para agrupar y resumir datos

Base de Datos Práctica 1.

1. DML. Las subconsultas

CONSULTAS BASICAS EN SQL SERVER

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.

6 - Recuperar algunos registros (where)

Implementación de la integridad de datos

SQL (Structured Query Language)

Tema: PROCEDIMIENTOS ALMACENADOS.

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

Trabajo con Subconsultas

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

Práctica 3. Consultas SQL

Bases de Datos 2. Teórico

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

Tema: Desarrollo de aplicaciones con Visual Studio.net Parte II

Implementación de funciones definidas por el usuario

Procedimientos para agrupar y resumir datos

Modelos y Bases de Datos

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

EL ENTORNO DE TRABAJO SQL ORACLE

DML en SQL. Consultas sencillas usando el DML de SQL

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

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

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

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

EJERCICIO SOBRE EMPRESA DE MATERIALES DE CONSTRUCCIÓN

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

Base de datos Lenguaje SQL

Práctica A: Creación de tipos de datos y tablas

Operación Microsoft Access 97

Base de datos relacional

Bases de Datos Relacionales

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

9- Procedimientos almacenados.

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

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

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

Tema: Creacion de una base de datos utilizando sintaxis Sql.

OBTENER DATOS EXTERNOS

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

MANUAL BÁSICO DEL LENGUAJE SQL

Uso de las herramientas de consulta de Transact-SQL

PROYECTO EDUCATIVO LA CALERA

Tutorial de MySQL Lección II

Paso del E-R a tablas

Tema: Disparadores Parte I.

Restricciones (constraints) FOREIGN KEY

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

- Access es un gestor de bases de datos relacionales gráfico e interactivo.

Manual de ACCESS Intermedio

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

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

iseries Operations Navigator Administración de aplicaciones

LABORATORIO Nº 3 PRÁCTICA DE FUNCIONES EN MICROSOFT EXCEL

Informática I Notas del curso

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Tema: Creacion de una base de datos utilizando sintaxis Sql.

Hoja1!C4. Hoja1!$C$4. Fila

T12 Vistas y tablas temporales

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

MATERIAL 2 EXCEL 2007

Centro de Capacitación en Informática

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

CARGA MASIVA EMOV 7/1/2013

select nombre from profesores where categoria='aso6';

BASE DE DATOS RELACIONALES

Tema: GESTIÓN DE SESIONES EN PHP.

Toda base de datos relacional se basa en dos objetos

TUTORIAL OPERADOR CUBE

Introducción a los Sistemas de Gestión de Bases de Datos

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

Microsoft SQL Server 2005

USANDO SQL. EN BASE DE Ooo.

= C18+C19+C20+C21+C22 = SUMA(C18:C22) Con este sencillo ejemplo hemos querido demostrar que las funciones nos permiten simplificar los cálculos.

Bases de Datos: Structured Query Language (SQL)

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

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Introduccio n a fo rmulas y funciones

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

Trabajos de Ampliación. Bases de datos NoSQL.

Crear BD en. Isis Bonet Cruz, PhD

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

Transcripción:

Base de datos I. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Combinación de tablas Objetivo Específico Utilice alias en los nombres de las tablas. Combine datos de varias tablas mediante combinaciones. Combinación de varios conjuntos de resultados en un único conjunto de resultados mediante el operador UNION. Materiales y Equipo Computadora con SQL Server 2005. Guía Número 4 Introducción Teórica Clave primaria Una clave primaria es un campo (o varios) que identifica un solo registro (fila) en una tabla. Para un valor del campo clave existe solamente un registro. create table usuarios( nombre varchar(20), clave varchar(10), primary key(nombre) ); Clave foranea Con la restricción "foreign key" se define un campo (o varios) cuyos valores coinciden con la clave primaria de la misma tabla o de otra, es decir, se define una referencia a un campo con una restricción "primary key" o "unique" de la misma tabla o de otra. La integridad referencial asegura que se mantengan las referencias entre las claves primarias y las externas. Por ejemplo, controla que si se agrega un código de editorial en la tabla "libros", tal código exista en la tabla "editoriales".

2 Base de datos I, Guía 4 También controla que no pueda eliminarse un registro de una tabla ni modificar la clave primaria si una clave externa hace referencia al registro. Por ejemplo, que no se pueda eliminar o modificar un código de "editoriales" si existen libros con dicho código. alter table NOMBRETABLA1 add constraint NOMBRERESTRICCION foreign key (CAMPOCLAVEFORANEA) references NOMBRETABLA2 (CAMPOCLAVEPRIMARIA); Ejemplo Se tienen las tablas VENTAS y VENDEDOR, dichas tablas deberán relacionarse por el idvendedor que es la llave primaria en la tabla VENDEDOR y es foránea en la tabla VENTAS. El script es el siguiente ---tabla vendedor CREATE TABLE VENDEDOR( idvendedor INT PRIMARY KEY, nombre VARCHAR(20), apellido VARCHAR(10), ); ---tabla ventas CREATE TABLE VENTAS( Idventa INT PRIMARY KEY, nombre VARCHAR(20), apellido VARCHAR(10), idvendedor INT foreign key (idvendedor) references VENDEDOR(idvendedor) ) Cuando creamos relaciones en SQL Server, este nos permite crear un diagrama relacional de las tablas de la base de datos, como se muestra en la siguiente figura. Uso de alias en los nombres de tablas. El uso de alias en los nombres de tablas mejora la legibilidad de las secuencias de comandos, facilita la escritura de combinaciones complejas y simplifica el mantenimiento de Transact-SQL.

Base de datos I. Guía 1 3 Al escribir secuencias de comandos, puede sustituir un nombre de tabla descriptivo largo y complejo por un alias sencillo y abreviado. El alias se utiliza en lugar del nombre completo de la tabla. Sintaxis parcial: aliastabla SELECT * FROM servidor.basededatos.esquema.tabla AS Ejemplo 1: En este ejemplo se muestran los nombres de los clientes, el identificador del cliente y la cantidad vendida de las tablas buyers y sales. Esta consulta no utiliza alias en las tablas de la sintaxis de JOIN. USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO Ejemplo 2: En este ejemplo se muestran los nombres de los clientes, el identificador del cliente y la cantidad vendida de las tablas buyers y sales. Esta consulta utiliza alias en las tablas de la sintaxis de JOIN. USE joindb SELECT buyer_name, s.buyer_id, qty FROM buyers AS b INNER JOIN sales AS s ON b.buyer_id = s.buyer_id GO Ahora la tabla buyers se le podrá conocer con el alias b y la tabla sales se podrá conocer con el alias s NOTA: Algunas veces, la compleja sintaxis de JOIN y las subconsultas deben usar alias en los nombres de tablas. Por ejemplo, al combinar una tabla consigo misma deben utilizarse alias. Combinación de datos de varias tablas: Una combinación es una operación que permite consultar dos o más tablas para producir un conjunto de resultados que incorpore filas y columnas de cada una de las tablas. Las tablas se combinan en función de las columnas que son comunes a ambas tablas.

4 Base de datos I, Guía 4 Cuando se combinan tablas, Microsoft SQL Server compara los valores de las columnas especificadas fila por fila y, después, utiliza los resultados de la comparación para combinar los valores que cumplan los criterios especificados en nuevas filas. Hay tres tipos de combinaciones: combinaciones internas, combinaciones externas y combinaciones cruzadas. Adicionalmente, en una instrucción SELECT se pueden combinar más de dos tablas mediante un conjunto de combinaciones o se puede combinar una tabla consigo misma mediante una autocombinación. JOIN: Es una operación que combina registros de dos tablas en una base de datos relacional que resulta en una nueva tabla (temporal) llamada tabla de JOIN. Las tablas se combinan para producir un único conjunto de resultados que incorpore filas y columnas de dos o más tablas. Sintaxis Parcial SELECT columna [, columna ] FROM {<tablaorigen >} [,...n] <tipocombinación > ::= [ INNER { { LEFT RIGHT FULL } [OUTER] } ] [ <sugerenciacombinación> ] JOIN <tablacombinada> ::= <tablaorigen > <tipocombinación > <tablaorigen > ON <condiciónbúsqueda> <tablaorigen > CROSS JOIN <tablaorigen > <tablacombinada> Selección de columnas específicas de varias tablas:

Base de datos I. Guía 1 5 Una combinación permite seleccionar columnas de varias tablas al expandir la cláusula FROM de la instrucción SELECT. En la cláusula FROM se incluyen dos palabras clave adicionales: JOIN y ON. La palabra clave JOIN especifica qué tablas se van a combinar y cómo. La palabra clave ON especifica las columnas que las tablas tienen en común. Consultas de dos o más tablas para producir un conjunto de resultados: Una combinación permite consultar dos o más tablas para producir un único conjunto de resultados. Al implementar combinaciones, tenga en cuenta los siguientes hechos e instrucciones: 1. Especifique la condición de combinación en función de claves principales y externas. 2. Si una tabla tiene una clave principal compuesta, cuando combine tablas debe hacer referencia a toda la clave en la cláusula ON. 3. Para combinar tablas, utilice columnas comunes a las tablas especificadas. Dichas columnas deben tener tipos de datos iguales o similares. 4. Haga referencia al nombre de la tabla si las columnas de las tablas que va a combinar tienen el mismo nombre. Califique los nombres de las columnas con el formato tabla.columna. 5. Limite el número de tablas de las combinaciones porque cuantas más tablas combine, mayor será la duración del proceso de la consulta. 6. Puede incluir varias combinaciones en una instrucción SELECT. Uso de combinaciones internas:

6 Base de datos I, Guía 4 Las combinaciones internas combinan tablas mediante la comparación de los valores de las columnas que son comunes a ambas tablas. SQL Server sólo devuelve las filas que cumplen las condiciones de la combinación. Por qué se utilizan combinaciones internas: Utilice combinaciones internas para obtener información de dos tablas independientes y combinar dicha información en un conjunto de resultados. Al utilizar combinaciones internas, tenga en cuenta los siguientes hechos e instrucciones: 1. Las combinaciones internas son el tipo predeterminado de SQL Server. Puede abreviar la cláusula INNER JOIN como JOIN. 2. Para especificar las columnas que desea presentar en el conjunto de resultados, incluya los nombres calificados de las columnas en la lista de selección. 3. Incluya una cláusula WHERE para restringir las filas que se devuelven en el conjunto de resultados. 4. No utilice valores NULL como condición de combinación, ya que no se evalúan como iguales entre sí.

Base de datos I. Guía 1 7 Ejemplo 1: Supongamos que tenemos dos tablas: una de películas y otra de directores relacionadas entre sí: movies id title year director id directors name 1 Four Rooms 1995 3 2 Die Hard 1988 1 3 The Hunt for Red October 1990 1 1 John McTiernan 2 Alfred Hitchcock 3 Quentin Tarantino 4 Psycho 1960 2 Si quiero obtener todas las películas y el nombre de su director haría lo siguiente: USE MOVIES SELECT m.title, d.name FROM movies m INNER JOIN directors d ON m.director = d.id Donde los campos a seleccionar son title que está en la tabla movies y name que está en la tabla directores, como movies tiene el alias m, podemos anteponer ese alias a los campos que queramos seleccionar de la tabla movies, esto se hace para no causar ambigüedad en caso que hallan 2 campos con nombres iguales en cada tabla. Ejemplo 2: Este ejemplo devuelve los valores buyer_name, buyer_id y qty de los clientes que han adquirido algún producto. Los clientes que no hayan adquirido nada no se incluyen en el conjunto de resultados. Los clientes que han adquirido más de un producto aparecen una vez por cada compra realizada. Las columnas buyer_id de las dos tablas pueden especificarse en la lista de selección. USE joindb SELECT buyer_name, sales.buyer_id, qty FROM buyers INNER JOIN sales ON buyers.buyer_id = sales.buyer_id GO

8 Base de datos I, Guía 4 RESULTADO: Ejemplo 3: En este ejemplo se devuelven los nombres de los productos y de las compañías que los suministran. Los productos sin suministradores asignados y los suministradores sin productos asignados no se incluyen en el conjunto de resultados. USE northwind SELECT productname, companyname FROM products INNER JOIN suppliers ON products.supplierid = suppliers.supplierid GO RESULTADO Ejemplo 4: En este ejemplo se devuelven los nombres de los clientes que han hecho pedidos después del 1/1/98. Observe que se utiliza una cláusula WHERE para restringir las filas devueltas en el conjunto de resultados. USE northwind SELECT DISTINCT companyname, orderdate FROM orders INNER JOIN customers ON orders.customerid = customers.customerid

Base de datos I. Guía 1 9 WHERE orderdate > '1/1/98' GO Procedimiento Realice los siguientes ejercicios: 1. En este ejercicio, va a escribir y ejecutar consultas que combinan tablas en la base de datos library. Abra una sesión del SQL Server Management Studio e ingrese su número de carné en el usuario y password. En la lista de BD, haga clic en library. Utilice las tablas member y adult para realizar una consulta que devuelva los campos firstname, middleinitial, lastname, street, city, state y zip. Concatene las columnas firstname, middleinitial y lastname en una cadena de texto y asigne a la columna el alias name. Ejecute la consulta para comprobar que devuelve los resultados deseados (ver figura 1). Figura 1. 2. Para este ejercicio va utilizar las tablas title, item y copy, y va a generar una consulta que devuelva isbn, copy_no, on_loan, title, translation y cover, y valores para las filas de la tabla copy cuyo ISBN sea 1 (uno), 500 (quinientos) o 1000 (mil). Ordene los resultados por la columna isbn. Para cada tabla debe utilizar un alias. Escriba la lista de selección de la consulta. Escriba una cláusula FROM que cree una combinación interna entre las tablas title y copy sobre las columnas title_no. En la cláusula FROM, establezca los alias de las tablas que haya utilizado en la lista de selección.

10 Base de datos I, Guía 4 Agregue una segunda cláusula INNER JOIN para crear la combinación entre las tablas item y copy sobre las columnas isbn. Componga una cláusula WHERE que restrinja las filas de la tabla copy obtenidas de aquéllas cuyo ISBN sea 1 (uno), 500 (quinientos) o 1000 (mil). Escriba la cláusula ORDER BY para ordenar el resultado por el ISBN. Ejecute la secuencia de comandos (ver figura2). 3- En la base de datos Library (biblioteca) se tienen las siguientes tablas. Member Reservation Ítem Title En la tabla Member están los miembros que están afiliados a la biblioteca, en la tabla Reservation están las reservaciones de libros que han realizado los miembros de la biblioteca, la reserva se realiza por el isbn(número de identificación de los libros), la tabla Title esta los títulos de los libros el autor y la sinopsis y la tabla ítem están las traducciones que se les ha realizado a los libros que están en la tabla Title, cada libro solo puede tener un isbn, por ende si hay un libro traducido en 4 lenguajes tiene isbn diferentes para cada uno. Se pide una consulta que muestra el nombre y apellido (firstname y el lastname) de los cliente que han reservado libros, la consulta debe contener los siguientes campos: firstname, lastname, log_date,title, translation.

Base de datos I. Guía 1 11 Investigación -Investigue en qué consisten las combinaciones externas Bibliografía Vieira Roberto, Fundamentos de Programación con SQL Server 2005

12 Base de datos I, Guía 4 Guía 4: COMBINACIO Y RELACION DE TABLAS Alumno: Máquina No: Hoja de cotejo: 4 1 Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO Del 20 al 30% Conocimie nto deficient e de los fundament os teóricos Conocimiento y explicación incompleta de los fundamentos teóricos Conocimiento completo y explicación clara de los fundamentos teóricos APLICACIÓN DEL CONOCIMIENTO Del 40% al 60% ACTITUD Del 15% al 30% No tiene actitud proactiva. Actitud propositiva y con propuestas no aplicables al contenido de la guía. Tiene actitud proactiva y sus propuestas son concretas. TOTAL 100%