LENGUAJE DE MANIPULACIÓN DE DATOS (DML) OPERADORES DE ÁLGEBRA RELACIONAL



Documentos relacionados
DML en SQL. Consultas sencillas usando el DML de SQL

Álgebra Relacional. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Fac. Ciencias, UNAM / 1

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

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

select nombre from profesores where categoria='aso6';

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

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

Modelos y Bases de Datos

OPERACIONES FUNDAMENTALES DEL ÁLGEBRA RELACIONAL. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

5- Uso de sentencias avanzadas

S.Q.L. (Lenguaje de Consulta Estructurada)

Bases de Datos 2. Teórico

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

EJERCICIOS RESUELTOS

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

Bases de Datos: Structured Query Language (SQL)

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

1. DML. Las subconsultas


Práctica 3. Consultas SQL

Diseño de Bases de Datos Bases de Datos Documentales Grao en Información e Documentación Curso 2013/2014

BASES DE DATOS - SQL. Javier Enciso

ÁLGEGRA RELACIONAL AUTORÍA ÁNGEL LUIS COBO YERA TEMÁTICA BASES DE DATOS ETAPA CICLOS FORMATIVOS.

Estrategias Didácticas B-Learning: ÁLGEBRA RELACIONAL

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES)

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

Introducción al álgebra relacional. Con ejemplos en SQL

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

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

Conceptos Avanzados de Bases de datos

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

Capítulo 3: Álgebra Relacional

Bases de Datos 2. Teórico

6- Combinación de tablas

Restricciones de Integridad

Ing. Santiago C. Pérez Laura Noussan Lettry Carlos Campos

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

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

Cálculo Relacional. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

Unidad. Lenguaje SQL. (Structured Query Language)

MANUAL BÁSICO DEL LENGUAJE SQL

* Para phpmyadmin no es necesario el punto y coma, esto es solo para la consola mysql.

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

SQL. Orígenes y Evolución

UNION, INTERSECCION Y DIFERENCIA. SELECT TABLE Expresión con operador de reunión (SELECT * FROM PROFESOR) UNION (SELECT * FROM ESTUDIANTE)

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

Algebra Relacional Jos e Ram on Param a Gab ıa

Tema 4 : Lenguajes formales del modelo relacional

SQL. Álgebra Relacional Selección y proyección Operaciones sobre conjuntos: unión, intersección, diferencia, producto Reunión natural

Definición de XQuery.

Tema 4. SQL. Juan Ignacio Rodríguez de León

Tema 4. Manipulación de datos con SQL

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

SQL Server FEMEPA SQL Server 2000

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

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

Consulta y manipulación de datos. El lenguaje SQL

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

TÓPICOS DE IPC: EDUCACIÓN, VESTUARIO Y CELULARES Comité Externo

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont.

BASES DE DATOS I CONSULTA DE DATOS

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

EXISTS y NOT EXISTS. Empleados que no trabajan en el proyecto 527.

BASES DE DATOS. TEMA 6. El Álgebra Relacional

Ejercicio Nº 3: Realizar aumentos en una Tabla de Sueldos

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

Bases de Datos SQL - Ejemplos

Curso: Base de Datos Distribuidas. Unidad 3: Optimización de las Estrategias de Acceso. M. en C. José Mario Martínez Castro

Consultas con combinaciones

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

Base de datos con información de Vuelos, Reservas y Aviones

Primer Parcial de Fundamentos de Base de 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.

DML SQL II. Comparaciones con relaciones

Lenguaje para descripción de datos

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

Bases de Datos I. Cursada Clase 4: Álgebra relacional y de bolsas Información ausente Claves BASES DE DATOS I

BASES DE DATOS I. Algebra Relacional

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

Base de datos Lenguaje SQL

Álgebra Relacional. Unidad 5

Tema: USO DE COMBINACIONES EXTERNAS.

UNIDAD DE TRABAJO 2: BASES DE DATOS RELACIONALES

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

Bases de datos: Sistemas de bases de datos:

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Base de datos relacional

Examen de Ficheros y bases de datos ( ) Convocatoria de febrero I PARCIAL

Primer Parcial de Fundamentos de Base de Datos

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

Jaime Hernández P. SIG

MÓDULO 1: ORGANIZACIÓN Y ESTRUCTURA DE LA INFORMACIÓN. Tema 3: Interrogación y explotación de datos. Leire Aldaz, Begoña Eguía y Leire Urcola

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

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Práctica A: Trabajo con subconsultas

TEMA 4 FRACCIONES MATEMÁTICAS 1º ESO

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Sub consultas avanzadas

Transcripción:

PREVIO 6 LENGUAJE DE MANIPULACIÓN DE DATOS (DML) OPERADORES DE ÁLGEBRA RELACIONAL INTRODUCCIÓN La manera en que los usuarios solicitan información de la base de datos es a través del lenguaje de consultas, que es un lenguaje de nivel superior a los de los lenguajes de programación, pues a través del menor número de instrucciones se puede obtener la información solicitada. Dentro del lenguaje de consulta se encuentra el lenguaje procedimental, también llamado álgebra relacional, el cual consiste en un conjunto de operaciones que toman una o dos relaciones como entrada y generan otra relación nueva como resultado. Dentro del álgebra relacional tenemos dos tipos de operadores: Operadores básicos o fundamentales que son selección, proyección, unión, diferencia y producto cartesiano. Operadores compuestos o derivados: intersección y producto unión natural (join). OPERADORES BÁSICOS Estos operadores son utilizados por cualquier manejador de bases de datos para la obtención de consultas y se encuentran dentro del lenguaje de manipulación de datos. Selección Extrae las tuplas específicas de una relación dada presentando sólo aquellas que satisfagan las condiciones específicas. FROM tabla WHERE <condición>;

MANUAL DE PRÁCTICAS DE BASES DE DATOS Proyección Extrae los atributos especificados de una relación dada. Unión FROM tabla; Construye una relación formada por todas las tuplas que aparecen en las dos relaciones especificadas sin repeticiones. FROM tabla1 UNION FROM tabla2; O bien, con tuplas repetidas: Diferencia FROM tabla1 UNION all FROM tabla2; Construye una relación formada por todas las tuplas de la primera relación que no aparezcan en la segunda, de las dos relaciones especificadas. Producto cartesiano FROM tabla1 MINUS FROM tabla2; Combina cada dato de una tabla con cada dato de otra tabla. SELECT <columnaa>,<columnab> FROM tabla1, tabla2; 64 Ing. Luciralia Hernández Hernández

PREVIO 6. OPERADORES DE ÁLGEBRA RELACIONAL OPERADORES COMPUESTOS Estos operadores simplifican las consultas habituales, pues existe una operación equivalente usando sólo los operadores básicos. Intersección De dos relaciones específicas se obtienen las tuplas que coinciden en ambas. FROM tabla1 INTERSECT FROM tabla2; Producto o unión natural (JOIN) Es usado para consultar datos de más de una tabla. Los datos se combinan relacionando valores comunes, típicamente valores de primary key y foreign key. Su combinación está basada en todas las columnas comunes entre ambas tablas. Si dos tablas en una consulta no tienen ninguna condición de combinación, entonces ORACLE devuelve su producto cartesiano. Se tienen las opciones siguientes: <nombre tabla> NATURAL JOIN <nombre tabla> <nombre tabla> JOIN <nombre tabla> USING (<columnas>) <nombre tabla> JOIN <nombre tabla> ON <condición> EJEMPLO 1. Considere las siguientes tablas: CUENTAHABIENTE clavecte nomcte domcte telefono 1325 Juan Perez San Angel 17 54983726 1215 Pedro Gonzalez Xoquipa 25 57612947 2343 Miriam Zaragoza San Pablo 18 38929837 2574 Jose Rubalcaba Convento 97 56481635 1234 Rosa Ramirez Xoquipa 28 57897657 Ing. Lucila Arellano Mendoza 65

MANUAL DE PRÁCTICAS DE BASES DE DATOS PREST numpres clavecte importe fechapres numsuc 325 2343 2500 17-mar-06 5 128 1234 3000 25-may-06 2 256 1325 1500 05-jun-06 8 653 2574 500 11-may-06 8 DEPOSITO numcta clavecte saldo fecha numsuc 2342 1325 10500 15-ene-05 4 2846 1215 15734 05-feb-06 4 9847 2343 12865 17-oct-05 5 3726 2574 11923 25-dic-05 8 4321 1234 7894 02-jun-06 1 SUCURSAL numsuc nomsuc activo 1 Insurgentes 50000000 2 Plateros 368945800 3 Coyoacan 857000000 4 Division 10255844 5 Ermita 658720000 8 Del Valle 269875120 Enseguida, realice las siguientes consultas: 1) Obtenga la clave de cliente y nombre de todos aquellos cuentahabientes que tienen una cuenta, un préstamo o ambas, evitando repeticiones. SELECT clavecte,nomcte FROM cuentahabiente NATURAL JOIN prest UNION SELECT clavecte,nomcte FROM cuentahabiente NATURAL JOIN deposito; Se obtienen los siguientes resultados: CLAV NOMCTE ------ ----------------- 1215 Pedro Gonzalez 1234 Rosa Ramirez 1325 Juan Perez 2343 Miriam Zaragoza 2574 Jose Ruvalcaba 66 Ing. Luciralia Hernández Hernández

PREVIO 6. OPERADORES DE ÁLGEBRA RELACIONAL 2) Realice la consulta anterior considerando repeticiones de tuplas. SELECT clavecte,nomcte FROM cuentahabiente NATURAL JOIN prest UNION ALL SELECT clavecte,nomcte FROM cuentahabiente NATURAL JOIN deposito; Se obtienen los siguientes resultados: CLAV NOMCTE ------- ----------------- 1325 Juan Perez 2343 Miriam Zaragoza 2574 Jose Ruvalcaba 1234 Rosa Ramirez 1325 Juan Perez 1215 Pedro Gonzalez 2343 Miriam Zaragoza 2574 Jose Ruvalcaba 1234 Rosa Ramirez 3) Muestre los nombres de los cuentahabientes que tienen una cuenta, pero que no han obtenido un préstamo. SELECT nomcte FROM cuentahabiente NATURAL JOIN deposito MINUS SELECT nomcte FROM cuentahabiente NATURAL JOIN prest; El resultado se muestra enseguida: NOMCTE ---------------------- Pedro Gonzalez 4) Proporcione la clave de cliente y teléfono de todos aquellos cuentahabientes que tienen una cuenta con un saldo mayor a $10000. SELECT clavecte,telcte FROM cuentahabiente NATURAL JOIN deposito WHERE saldo >=10000; Ing. Lucila Arellano Mendoza 67

MANUAL DE PRÁCTICAS DE BASES DE DATOS Se obtiene la siguiente tabla: CLAVECTE TELCTE --------- ----------- 1325 54983726 2343 38929837 2574 56481635 1215 57612947 5) Proporcione el nombre de la sucursal y activo, de aquellos depositantes que viven en Xoquipa. SELECT nomsuc,activo FROM sucursal,deposito NATURAL JOIN cuentahabiente WHERE sucursal.numsuc=deposito.numsuc AND domcte like 'Xoquipa %'; Se obtiene lo siguiente: NOMSUC ACTIVO ------------- ---------- Insurgentes 50000000 Division 10255844 6) Liste los nombres de los cuentahabientes que tienen una cuenta y un préstamo en la sucursal Ermita. SELECT c.clavecte, c.nomcte, s.numsuc FROM cuentahabiente c, prest p, sucursal s WHERE c.clavecte=p.clavecte AND p.numsuc=s.numsuc AND s.nomsuc='ermita' INTERSECT SELECT c.clavecte, c.nomcte, s.numsuc FROM cuentahabiente c, deposito p, sucursal s WHERE c.clavecte=p.clavecte AND p.numsuc=s.numsuc AND s.nomsuc='ermita'; Se obtiene lo siguiente: CLAVEC NOMCTE NU --------- ------------------- ---- 2343 Miriam Zaragoza 5 68 Ing. Luciralia Hernández Hernández

PREVIO 6. OPERADORES DE ÁLGEBRA RELACIONAL 7) Obtenga el total de los préstamos de todas las sucursales. SELECT SUM(importe) AS Total FROM prest; El resultado es el siguiente: TOTAL ------- 7500 8) Obtenga el total de depósitos por sucursal en orden alfabético. SELECT s.nomsuc,sum(d.saldo) AS Total FROM deposito d, sucursal s WHERE d.numsuc=s.numsuc GROUP BY s.nomsuc; El resultado es el siguiente: NOMSUC TOTAL ------------ --------- Division 26234 Del Valle 11923 Ermita 12865 Insurgentes 7894 9) Obtenga un listado del nombre de las sucursales y el número de préstamos otorgados. SELECT s.nomsuc, COUNT(p.numsuc) AS NumPres FROM prest p, sucursal s WHERE p.numsuc=s.numsuc GROUP BY s.nomsuc; Se obtienen los siguientes resultados: NOMSUC NUMPRES ----------- ---------- Del Valle 2 Plateros 1 Ermita 1 Ing. Lucila Arellano Mendoza 69

MANUAL DE PRÁCTICAS DE BASES DE DATOS Utilizando subconsultas 10) Obtenga el nombre de la sucursal que tiene el mayor número de préstamos otorgados SELECT s.nomsuc, COUNT(*) AS NumPres FROM prest p, sucursal s WHERE p.numsuc=s.numsuc GROUP BY s.nomsuc HAVING COUNT(*)=(SELECT MAX(prestamo) FROM (SELECT COUNT(p.numsuc) AS prestamo ); FROM prest p, sucursal s WHERE p.numsuc=s.numsuc GROUP BY s.nomsuc) Se obtiene lo siguiente: NOMSUC NUMPRES ---------- ----------- Del Valle 2 11) Obtenga los datos del cuentahabiente que solicitó el préstamo más alto en cualquier sucursal. SELECT * FROM cuentahabiente c, prest p WHERE c.clavecte=p.clavecte AND p.importe= (SELECT MAX(importe) FROM prest); Se obtiene el siguiente resultado: CLAVE NOMCTE DOMCTE TELCTE NUMP NUMC IMPORTE FECHAPRE NU -------- ------------------- ---------------- -------------- ------- --------- ------------- ---------------- ---- 1234 Rosa Ramirez Xoquipa 28 57897657 128 1234 3000 25/05/06 2 70 Ing. Luciralia Hernández Hernández