03Construcci N De Base De Datos
Datos
Carrera: Ingeniería de Ejecución en Computación e Informática.
Código de Carrera: 3909
Código Asignatura: 302231
SQL: Desplegando datos desde
múltiples Tablas:
A veces, extraer información de la base de datos requiere
“combinar” más de una tabla: Departamentos
Empleados
SQL: Desplegando datos desde
múltiples Tablas:
Join (“Reunión” o “Combinación”)
Corresponde a la acción de reunir dos o más tablas para acceder
a información (relacionada entre ellas) para generar un informe o
listado.
Por lo general además se requiere de una condición de Join
SQL: Desplegando datos desde
múltiples Tablas:
Tipos de Join:
Joins Propietarios de Oracle
SQL: 1999
Compliant Joins:
(9i y anteriores):
Equijoin.
Non-equijoin.
Outer join.
Self join.Cross joins.
Natural Joins.
Clausula Using.
Outer joins Completo o por
ambos lados.
Condiciones de join arbitrarias
para outer joins.
SQL: Desplegando datos desde
múltiples Tablas:
Equijoin o Join en general:
SQL: Desplegando datos desde
múltiples Tablas:
Usando Join: (Propietario de Oracle)
SELECT
SELECT table1.columnA,
table1.columnA, table2.columnZ
table2.columnZ
FROM
FROMtable1,
table1, table2
table2
WHERE
WHERE table1.columnPk
table1.columnPk == table2.columnFk;
table2.columnFk;
Usando Join: (SQL 1999)
SELECT
SELECT table1.columnA,
table1.columnA, table2.columnZ
table2.columnZ
FROM
FROM table1
table1 Inner
Inner Join
Join table2
table2
ON
table1.columnPk
ON
table1.columnPk == table2.columnFk;
table2.columnFk;
En ambos:
Prefijar el nombre de la columna con elnombre de la tabla cuando
el nombre de la columna es el mismo en más de una tabla.
SQL: Desplegando datos desde
múltiples Tablas:
Ejemplo:
Mostrar un listado con el id del empleado, el apellido, el id del
departamento, el nombre del departamento y el id del lugar.
SELECT
SELECT empleados.empleado_id,
empleados.empleado_id, empleados.apellido,
empleados.apellido,
empleados.departamento_id,empleados.departamento_id, departamentos.departamento_id,
departamentos.departamento_id,
departamentos.lugar_id
departamentos.lugar_id
FROM
FROM empleados
empleados Join
Join departamentos
departamentos
On
On empleados.departamento_id
empleados.departamento_id == departamentos.departamento_id;
departamentos.departamento_id;
19 filas seleccionadas
SQL: Desplegando datos desde
múltiples Tablas:
Diferenciando nombres de columnas ambiguas:
Usar el nombre de tabla como prefijo para calificar nombres de
columnas que están en múltiples tablas.
Mejorar el desempeño usando prefijos en las tablas.
Distinguir columnas que tienen idéntico nombre pero residen en
diferentes tablas usando alias en las columnas
Simplificar las consultas usando alias en las tablas.
SELECT
SELECT e.empleado_id,e.empleado_id, e.apellido,
e.apellido, e.departamento_id,
e.departamento_id,
d.departamento_id,
d.departamento_id, d.lugar_id
d.lugar_id
FROM
FROM empleados
empleados ee Inner
Inner Join
Join departamentos
departamentos dd
On
On e.departamento_id
e.departamento_id == d.departamento_id;
d.departamento_id;
SQL: Desplegando datos desde
múltiples Tablas:
Non Equijoins:
El salario en la tablaEMPLEADOS está entre el salario mínimo y
máximo de la tabla GRADOS_CARGOS
Empleados
Grados_Cargos
SQL: Desplegando datos desde
múltiples Tablas:
Non Equijoins (Ejemplo):
Mostrar el Apellido, el salario y el nivel (o grado) al que pertenece
el empleado.
SELECT
SELECT e.apellido,
e.apellido, e.salario,
e.salario, g.grado_nivel
g.grado_nivel
FROM
FROM empleados
empleados ee Inner
Inner Join
Joingrados_cargos
grados_cargos gg
On
On e.salario
e.salario BETWEEN
BETWEEN g.salario_bajo
g.salario_bajo AND
AND g.salario_alto;
g.salario_alto;
20 filas seleccionadas
SQL: Desplegando datos desde
múltiples Tablas:
Outer Join:
Se utiliza para obtener las filas de una tabla que no se encuentran
en la otra tabla relacionada:
¿En qué departamento no hay ningún empleado?
¿Qué empleado no está...
Regístrate para leer el documento completo.