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
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.