Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Son tablas lógicas que se crean en la base de datos y existen como un objeto más de la misma;
aunque no tienen existencia física, su implementación permite usarlas de la misma manera en
la que se usan las tablas.
Sintaxis básica
Utilizando el servidor de base de datos elegido como SQL Server, MySQL o PostgreSQL y la base
de datos Neptuno que se ajuste al mismo, vamos a ejecutar los siguientes ejemplos:
Ejemplo:
select *
from ProduCategView
Los nombres de vistas deben ser únicos para cada usuario entre las tablas y vistas ya existentes.
Es posible crear vistas en otras vistas y procedimientos que hagan referencia a vistas; también,
puede definir claves primarias, externas y comunes en las vistas. No es posible asociar reglas,
valores predeterminados ni disparadores a las vistas, ni tampoco crear índices en ellas. No es
posible crear vistas temporales, ni tampoco generar vistas en tablas temporales.
Se pueden crear vistas que no contengan filas duplicadas. Utilice la palabra clave distinct de la
instrucción select para garantizar que cada fila de la vista sea única. Sin embargo, estas vistas
distinct no pueden actualizarse.
A continuación, se muestra una instrucción de definición de vista que cambia el nombre de una
columna de la vista de su nombre en la tabla subyacente:
Se usa para definir la vista; es necesario tener el permiso select para seleccionar cualquier objeto
referenciado en la instrucción select de una vista que se esté creando. Una vista no tiene que
ser necesariamente un simple subconjunto de filas y columnas de una tabla concreta, como en
el ejemplo. Es posible crear una vista a partir de más de una tabla y otras vistas, con una
instrucción select de cualquier grado de complejidad.
Para crear una vista con todas las filas de la tabla Productos, pero sólo con un subconjunto de
sus columnas, escriba la instrucción:
Observe que no se incluye ningún nombre de columna en la cláusula create view. La vista
ProductosView heredará los nombres de columna que aparecen en la lista de selección.
Definición de vista con una columna calculada, combinación de tablas y función de agregado:
A continuación, se muestra una instrucción de definición de vista que crea una vista con una
columna calculada generada a partir de las columnas PrecioUnidad y Cantidad; además,
utilizando la función SUM, y la combinación de la tabla Productos y Detalles de pedidos:
Es posible asegurarse de que las filas que contiene una vista son únicas, como en el ejemplo:
Podemos crear vistas con el contenido de una sola tabla y/o definiendo una condición que se
requiera cumplir para la actualización de la misma, se hace con el fin de evitar que los usuarios
manipulen directamente los datos, por lo que es posible acceder a los datos a través de la vista
Utilizando el servidor de PostgreSQL se puede hacer de forma habitual sin embargo, usando otro
servidor debemos verificar si se requiere codificar de forma diferente, por ejemplo a
continuación se describe la forma en la que se debe hacer en SQL Server.
Normalmente, SQL Server no verifica las instrucciones insert y update en vistas para determinar
si las filas afectadas están dentro del alcance de la vista. Una instrucción puede insertar una fila
en la tabla base subyacente pero no en la vista, ni cambiar una fila existente para que deje de
cumplir los criterios de selección de la vista.
Cuando se crea una vista con with check option, cada operación insert y update realizada
mediante la vista se valida según los criterios de selección de la vista. Todas las filas insertadas
o actualizadas mediante la vista deben permanecer visibles por medio de ésta, o la instrucción
no se ejecuta correctamente.
Cuando se intenta insertar una fila mediante proveedor, SQL Server verifica si la nueva fila se
encuentra dentro del alcance de la vista. La siguiente instrucción insert no se ejecuta
correctamente porque la fila nueva tendría un valor ciudad de "Bogota", en lugar de "A%":
Cuando se intenta actualizar una fila mediante proveedor, SQL Server verifica si la actualización
no hará que la fila desaparezca de la vista. La siguiente instrucción update no se ejecuta
correctamente porque cambiaría el valor de ciudad de "A%" a "Medellin". Después de la
actualización, la fila dejaría de estar visible mediante la vista.
update proveedor
set ciudad = 'Medellin'
where IdProveedor = 28
Si se crea una vista con with check option , todas las vistas derivadas de la vista "base" deben
satisfacer su opción de verificación. Cada fila insertada mediante la vista derivada debe estar
visible a través de la vista base. Cada una de las filas actualizadas mediante la vista derivada
deben permanecer visibles a través de la vista base.
Para cada planteamiento debe redactar la sentencia de creación de la vista y una sentencia en
la que consulte la vista:
1. Cree una vista con el nombre del producto y la cantidad total vendida del mismo.
2. Cree una vista con el nombre del empleado, la edad y el total recaudado en ventas por
cada uno.
3. Cree una vista con el nombre de la categoría, el nombre de los productos de cada
categoría y los proveedores de cada producto incluya solo las filas de los productos
empacados en botellas (bot).
4. Cree una vista con el código del cliente, el nombre del cliente y el total pagado por cada
cliente.
5. Cree una vista con el código del cliente, el nombre de cliente y el porcentaje que el total
pagado por cada cliente representa frente al total de todas las ventas registradas.
Utilice una subconsulta para obtener el total de todas las ventas y la vista del punto 4
para obtener el porcentaje.
6. crear una vista con las todas las columnas de la tabla productos, y solo las filas en las
que el precio unidad es mayor a 20. Esta vista es para actualizar la tabla.
● Insertar en la vista, un registro en el cual incluya como precio unidad 30, tenga en
cuenta la integridad de datos. Describa lo que sucede.
● Cree la sentencia necesaria para modificar, en la vista, el precio unidad a 10 del
producto 77, intente ahora cambiarlo a 28. Describa lo que sucede en los dos casos.
7. Cree una vista con el requisito Distinct con las regiones de origen de los clientes, omita
las filas con valor nulo. Explique con sus palabras la funcionalidad del requisito Distinct,
en la creación de vistas.