10/17/2019

S7. TP D - Relaciones y Consultas Multitablas en la Base de Datos


RELACIONES Y CONSULTAS MULTITABLAS EN LA BASE DE DATOS

SQL permite recuperar datos que responden a estas peticiones mediante consultas multitabla que componen (join) datos procedentes de dos o más tablas. Las consultas multitabla más comunes implican a dos tablas que tienen la relación natural. Por ejemplo, la consulta “lista todos los pedidos, mostrando su número, importe, nombre del cliente y el límite de crédito del cliente” se realiza de la siguiente forma:

SELECT num_pedido,importe,empresa,limite_credito FROM pedidos,clientes WHERE clie=num_clie




Composiciones con criterios de selección de fila

La condición de búsqueda que especifica las columnas de emparejamiento en una consulta multitabla puede combinarse con otras condiciones de búsqueda para restringir aún más los contenidos de los resultados.

Por ejemplo, supongamos la consulta anterior que se desea restringirla mostrando únicamente los vendedores de las oficinas con objetivos de ventas iguales o mayores de 60000.

SELECT nombre,ciudad,region FROM repventas,oficinas WHERE oficina_rep=oficina AND objetivo>=60000




Consultas de tres o más tablas

SQL puede combinar datos de tres o más tablas utilizando las mismas técnicas básicas utilizadas para las consultas de dos tablas. Un sencillo ejemplo es el siguiente:

SELECT num_pedido,importe,empresa,nombre FROM pedidos,clientes,repventas WHERE clie=num_clie AND rep=num_empl AND importe>25000




No es infrecuente encontrar consultas de tres o más tablas en aplicaciones SQL de producción. Por ejemplo, dentro de la sencilla base de datos. Ejemplo que contiene cinco tablas, es posible hallar una consulta de cuatro tablas que tiene sentido:

SELECT num_pedido,importe,empresa,nombre,ciudad FROM pedidos,clientes,repventas,oficinas WHERE clie=num_clie AND rep_clie=num_empl AND oficina_rep=oficina AND importe>25000


Selecciones de todas las columnas

Como se vio con anterioridad, “SELECT *” puede ser utilizado para seleccionar todas las columnas de la tabla designada en la cláusula FROM. En una consulta multitabla, el asterisco selecciona todas las columnas de todas las tablas listadas en la cláusula FROM. Por ejemplo:

SELECT * FROM repventas,oficinas WHERE oficina_rep=oficina






No hay comentarios.:

Publicar un comentario