Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una
unión de varias tablas; una combinación de varias tablas; un resumen estadístico de una
tabla; un subconjunto de otra vista, combinación de vistas y tablas.
CREATE VIEW: Crear Vista
CREATE VIEW
NOMBREVISTA as
SELECT *
FROM Productos;
Vista de Restricción
Son las que restringen el acceso de un usuario a únicamente un conjunto de filas
de una tabla.
EJEMPLO: Si se desea que un director de departamento vea sólo las filas de la tabla empleado (nombres y
apellidos de los empleados), correspondientes a los departamentos donde su presupuesto sea mayor a 8000.
Vista de Proyección
Son aquellas que restringen el acceso de un usuario sólo a ciertas columnas de una tabla.
Lo más habitual es crear vistas con parte de las filas y parte de las columnas de una tabla.
Por ejemplo:
Definir una vista que contenga el código de fabricante, el nombre del fabricante y el límite de crédito de
todos los clientes asignados al vendedor Bill Adams.
Vista Compuesta
Son vistas creadas a partir de los datos de dos o más tablas. Presentan los datos como una única
tabla virtual. Al igual que las anteriores se utilizan frecuentemente para facilitar el manejo de
consultas complejas de uso frecuente en la base.
Insert y update a traves de Vistas
Fuente: https://desarrolloweb.com/articulos/2337.php
Joins
JOIN permite combinar registros de diferentes tablas. En la clausula ON debemos establecer la
condición por la cual queremos unir la tabla, que generalmente es algo que tengan ambas en
común.
Compras Clientes
Fecha Apellido
¿Cómo funciona el JOIN?
Al unir dos tablas usando la clausula JOIN sin especificar una condicion
en la clausula ON, SQL lo que hace es devolver una nueva tabla con
todos los registros combinados de una con todas las posibles
combinaciones de la otra (producto cartesiano)
¿Cómo funciona el JOIN?
3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza
4 35.186.928 04/01/2017 40
ON
¿Cómo funciona el JOIN?
3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza
4 35.186.928 04/01/2017 40
ㅡ Imaginemos que contamos con un dataset que contiene las siguientes tablas: Personas y
Logros
Logros
17
Tipos de Join
ㅡ Hay varios tipos de operaciones de JOIN.
○ INNER JOIN: Retorna todos los registros donde haya al menos una coincidencia en ambas tablas
○ LEFT JOIN: Retorna todos los registros de la tabla izquierda, y los registros que coincidan de la tabla
derecha
○ RIGHT JOIN: Retorna todos los registros de la tabla derecha, y los registros que coincidan de la tabla
izquierda
○ FULL OUTER JOIN: Retorna todos los registros de ambas tablas aunque no tengan correspondencia
18
Tipos de Join
LEFT JOIN
El LEFT JOIN retorna todas las filas de la tabla izquierda (tabla1), con
las filas coincidentes en la tabla derecha (tabla2).
El resultado es NULL en el lado derecho cuando no hay coincidencia.
SELECT nombres_columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;
19
Tipos de Join
RIGHT JOIN
De forma similar, el RIGHT JOIN devuelve todas las filas de la tabla
derecha (tabla2), con las filas coincidentes en la tabla de la izquierda
(tabla1).
El resultado es NULL del lado izquierdo cuando no hay coincidencia.
SELECT nombres_columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;
20
Tipos de Join
FULL OUTER JOIN
El FULL OUTER JOIN retorna todas las filas de la tabla de la izquierda
(tabla1) y de la tabla de la derecha (tabla2).
El FULL OUTER JOIN combina el resultado de LEFT y RIGHT JOIN. En
este caso podemos tener valores NULL de ambos lados.
SELECT nombres_columnas
FROM tabla1
FULL OUTER JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;
21
Union
UNION permite combinar el resultado de varias consultas SELECT al mismo tiempo. Es decir, todas
las consultas se ejecutaran por separado y luego se concatenaran los resultados. A diferencia del
JOIN no se aplica ningun tipo de logica relacional para unir registros.
WHERE TipoPF = 110 AND Fecha = (SELECT MAX(Fecha) FROM BasesDeDatos.Tabla WHERE TipoPF = 110)
Restricciones:
Si el filtro utiliza de operador un ‘=’ el resultado debe ser un valor único, para múltiples valores a filtrar utilizamos
‘in’
No puede contener la cláusula ORDER BY
No puede ser la UNION de varias sentencias SELECT
Algunos SGBD obligan a renombrar cada expresión especial, MAX, AVG, SUM, etc.
Anidamientos / Subconsultas
SELECT
campo1,
campo2,
campo3
FROM BasesDeDatos.Tabla
WHERE Campo1 = Valor1
AND Campo2 in (SELECT Campo2 FROM BasesDeDatos.Tabla2 WHERE CampoX = Valor2)
SELECT
campo1,
campo2,
campo3
FROM BasesDeDatos.Tabla
WHERE Campo1 = Valor1
AND Campo2 in (SELECT Campo5 FROM BasesDeDatos.Tabla2 left join BaseDeDatos.Tabla4 WHERE CampoX =
Valor2)
Anidamientos / Subconsultas