Sei sulla pagina 1di 21

ÁLGEBRA RELACIONAL

PROYECCIÓN

Permite filtrar las columnas / atributos que se quieren


mostrar de una relación.

SELECT campo1, campo2, …, campoN


FROM tabla
RENOMBRAMIENTO

Permite renombrar la relación o los atributos de una relación.

R(a1, a2, …, aN) -> S(a1, a2, …, aN)

R(a1, a2, …, aN) -> R(b1, b2, …, bN)

R(a1, a2, …, aN) -> S(b1, b2, …, bN)


RENOMBRAMIENTO

SELECT *
FROM TABLA1 AS NUEVO_NOMBRE

SELECT campo1 AS nombre, campo2 AS apellidos


FROM TABLA1 AS integrantes
SELECCIÓN
Se conoce también como FILTRO. Y nos permite seleccionar
solamente unos registros de una relación que cumplen con
uno o varios criterios.

SELECT campo1, campo2, …, campoN


FROM tabla
WHERE campo1 {cumple la condición}
UNIÓN
Dos relaciones son compatibles en unión si sus dominios coinciden en
número y en orden. Y es la disyunción de los conjuntos. Es decir, el
elemento está en uno o en el otro conjunto.

R1(a1, a2, …, an)


R2(b1, b2, …, bn)

dominio R1(ai) = dominio R2(bi)


UNIÓN

SELECT campo1, campo2, …,


campoN
FROM tabla1
UNION [ ALL ]
SELECT otro1, otro2, …, otroN
FROM tabla2
INTERSECCIÓN
Dos relaciones son compatibles en intersección si sus dominios coinciden
en número y en orden. Y es la conjunción de los conjuntos. Es decir, el
elemento tiene que estar en ambos conjuntos.

R1(a1, a2, …, an)


R2(b1, b2, …, bn)

dominio R1(ai) = dominio R2(bi)


INTERSECCIÓN

SELECT campo1, campo2, …,


campoN
FROM tabla1
INTERSECT
SELECT otro1, otro2, …, otroN
FROM tabla2
INTERSECCIÓN - EQUIVALENCIA

SELECT campo1, campo2, …,


campoN
FROM tabla1
WHERE (campo1, campo2, …,
campoN)
IN (SELECT otro1, otro2, …,
otroN
FROM tabla2)
DIFERENCIA
Dos relaciones son compatibles en diferencia si sus dominios coinciden
en número y en orden. Y es la diferencia de los conjuntos. Es decir, el
elemento tiene que estar en el primer conjunto, pero no en el segundo.

R1(a1, a2, …, an)


R2(b1, b2, …, bn)

dominio R1(ai) = dominio R2(bi)


DIFERENCIA

SELECT campo1, campo2, …,


campoN
FROM tabla1
EXCEPT
SELECT otro1, otro2, …, otroN
FROM tabla2
DIFERENCIA - EQUIVALENCIA

SELECT campo1, campo2, …, campoN


FROM tabla1
WHERE (campo1, campo2, …, campoN)
NOT IN (SELECT otro1, otro2, …,
otroN
FROM tabla2)
PRODUCTO CARTESIANO

El producto cartesiano no exige la compatibilidad de dominios ni en


número ni en orden.

R1(a1, a2, a3, a4, …, aN)


R2(b1, b2, …, bX)

Q(a1, a2, a3, a4, …, aN, b1, b2, …, bX)


JOIN

COMBINACIÓN RELACIONAL.
CROSS JOIN

Es el resultado del producto cartesiano de las relaciones que


intervienen en la combinación.

LECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp


OM tabla1 as a CROSS JOIN tabla2 as b
NATURAL JOIN

Combina dos relaciones de manera natural entre la clave primaria de


una y la clave foránea de la otra.
LECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp
OM tabla1 as a NATURAL INNER JOIN tabla2 as b
INNER JOIN

Combina dos relaciones cuando se necesita especificar el (los)


atributo(s) con los que se combinarán.
LECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp
OM tabla1 as a INNER JOIN tabla2 as b ON a.campo1 = b.campo1
LEFT JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
añade todas aquellas filas (registros) de la relación nombrada en la
parte izquierda de la sentencia que no satisfacen la combinación con
la relación de la parte derecha.
ELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp
ROM tabla1 as a LEFT JOIN tabla2 as b ON a.campo1 = b.campo1
RIGHT JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
añade todas aquellas filas (registros) de la relación nombrada en la
parte derecha de la sentencia que no satisfacen la combinación con la
relación de la parte izquierda.
ELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp
ROM tabla1 as a RIGHT JOIN tabla2 as b ON a.campo1 = b.campo1
FULL JOIN
Combina dos relaciones realizando primero un INNER JOIN y luego
realiza un Left Join y por último un Right Join.

ELECT a.campo1, a.campo2, …, a.campoN, b.campo1, b.campo2, …, b.camp


ROM tabla1 as a FULL JOIN tabla2 as b ON a.campo1 = b.campo1

Potrebbero piacerti anche