ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Consultas multitabla SQL


Enviado por   •  6 de Julio de 2021  •  Trabajos  •  1.875 Palabras (8 Páginas)  •  165 Visitas

Página 1 de 8

1.1 Consultas multitabla SQL 1

1.1.1 Composiciones cruzadas (Producto cartesiano)

El producto cartesiano de dos conjuntos, es una operación que consiste en obtener otro conjunto cuyos elementos son todas las parejas que pueden formarse entre los dos conjuntos. Por ejemplo, tendríamos que coger el primer elemento del primer conjunto y formar una pareja con cada uno de los elementos del segundo conjunto. Una vez hecho esto, repetimos el mismo proceso para cada uno de los elementos del primer conjunto.

[pic 1]

Imagen: Imagen extraída de Wikipedia. Autor: GermanX

Ejemplo

Suponemos que tenemos una base de datos con dos tablas: empleado y departamento.

SELECT *

FROM empleado;

+--------+-----------+--------------+-----------+-----------+---------------------+

| codigo | nif       | nombre       | apellido1 | apellido2 | codigo_departamento |

+--------+-----------+--------------+-----------+-----------+---------------------+

|      1 | 32481596F | Aarón        | Rivero    | Gómez     |                   1 |

|      2 | Y5575632D | Adela        | Salas     | Díaz      |                   2 |

|      3 | R6970642B | Adolfo       | Rubio     | Flores    |                   3 |

+--------+-----------+--------------+-----------+-----------+---------------------+

SELECT *

FROM departamento;

+--------+------------------+-------------+

| codigo | nombre           | presupuesto |

+--------+------------------+-------------+

|      1 | Desarrollo       |      120000 |

|      2 | Sistemas         |      150000 |

|      3 | Recursos Humanos |      280000 |

+--------+------------------+-------------+

El producto cartesiano de las dos tablas se realiza con la siguiente consulta:

SELECT *

FROM empleado, departamento;

El resultado sería el siguiente:

+--------+-----------+--------+-----------+-----------+---------------------+---------------------------+-------------+--------+

| codigo | nif       | nombre | apellido1 | apellido2 | codigo_departamento | codigo | nombre           | presupuesto | gastos |

+--------+-----------+--------+-----------+-----------+---------------------+---------------------------+-------------+--------+

| 1      | 32481596F | Aarón  | Rivero    | Gómez     | 1                   | 1      | Desarrollo       | 120000      | 6000   |

| 2      | Y5575632D | Adela  | Salas     | Díaz      | 2                   | 1      | Desarrollo       | 120000      | 6000   |

| 3      | R6970642B | Adolfo | Rubio     | Flores    | 3                   | 1      | Desarrollo       | 120000      | 6000   |

| 1      | 32481596F | Aarón  | Rivero    | Gómez     | 1                   | 2      | Sistemas         | 150000      | 21000  |

| 2      | Y5575632D | Adela  | Salas     | Díaz      | 2                   | 2      | Sistemas         | 150000      | 21000  |

| 3      | R6970642B | Adolfo | Rubio     | Flores    | 3                   | 2      | Sistemas         | 150000      | 21000  |

| 1      | 32481596F | Aarón  | Rivero    | Gómez     | 1                   | 3      | Recursos Humanos | 280000      | 25000  |

| 2      | Y5575632D | Adela  | Salas     | Díaz      | 2                   | 3      | Recursos Humanos | 280000      | 25000  |

| 3      | R6970642B | Adolfo | Rubio     | Flores    | 3                   | 3      | Recursos Humanos | 280000      | 25000  |

+--------+-----------+--------+-----------+-----------+---------------------+---------------------------+-------------+--------+

1.1.2 Composiciones internas (Intersección)

La intersección de dos conjuntos es una operación que resulta en otro conjunto que contiene sólo los elementos comunes que existen en ambos conjuntos.

[pic 2]

Imagen: Imagen extraída de Wikipedia. Autor: Kismalac.

Ejemplo

Para poder realizar una operación de intersección entre las dos tablas debemos utilizar la cláusula WHERE para indicar la columna con la que queremos relacionar las dos tablas. Por ejemplo, para obtener un listado de los empleados y el departamento donde trabaja cada uno podemos realizar la siguiente consulta:

SELECT *

FROM empleado, departamento

WHERE empleado.codigo_departamento = departamento.codigo

El resultado sería el siguiente:

+--------+-----------+--------+-----------+-----------+---------------------+--------+------------------+-------------+--------+

| codigo | nif       | nombre | apellido1 | apellido2 | codigo_departamento | codigo | nombre           | presupuesto | gastos |

+--------+-----------+--------+-----------+-----------+---------------------+--------+------------------+-------------+--------+

| 1      | 32481596F | Aarón  | Rivero    | Gómez     | 1                   | 1      | Desarrollo       | 120000      | 6000   |

| 2      | Y5575632D | Adela  | Salas     | Díaz      | 2                   | 2      | Sistemas         | 150000      | 21000  |

...

Descargar como (para miembros actualizados)  txt (8 Kb)   pdf (905 Kb)   docx (1 Mb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com