Академический Документы
Профессиональный Документы
Культура Документы
Cristian Pinzn
CONTENIDO
Sintaxis de Vistas
Concepto de Vistas
Crear Vistas
Modificar Vistas
Eliminar Vistas
Restricciones de Vistas
Sintaxis de la Vistas
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] [
WITH <view_attribute> [ ,...n ] ] AS select_statement [ WITH CHECK
OPTION ] [ ; ] <view_attribute> ::= { [ ENCRYPTION ] [
SCHEMABINDING ] [ VIEW_METADATA ] }
Vista
Una vista es una alternativa para mostrar datos de
varias tablas.
Una vista es como una tabla virtual que almacena
una consulta. Los datos accesibles a travs de la
vista no estn almacenados en la base de datos
como un objeto.
Una vista se referencia igual que una tabla base, y
los resultados se presentan de igual forma a una
consulta sobre una tabla base.
Por: Dr. Cristian Pinzn
Vista
Podemos crear vistas con:
Vista
Existen algunas restricciones para el uso de "create view", a
saber:
No puede incluir las clusulas "compute" ni "compute by"
ni la palabra clave "into";
No se pueden crear vistas temporales ni crear vistas
sobre tablas temporales.
No se pueden asociar reglas ni valores por defecto a las
vistas.
No puede combinarse con otras instrucciones en un
mismo lote.
Se pueden construir vistas sobre otras vistas.
PROBLEMAS PRCTICOS
Problema Prctico
--Ejemplo #
CREATE VIEW V_CLIENTES
AS
SELECT Codigo_Cliente, Nombre_Cliente,
TelefonoMovil_Cliente, Direccion_Cliente
FROM TB_Cliente
--Ejecucin de la Vista para todos los campos
SELECT * FROM V_CLIENTES
--Ejecucin de la Vista Determinados campos de la vista
Problema Prctico
--Ejemplo #
CREATE VIEW V_CLIENTES
AS
SELECT Codigo_Cliente, Nombre_Cliente,
TelefonoMovil_Cliente, Direccion_Cliente
FROM TB_Cliente
--Resultado de ejecutar el comando CREATE
Comandos completados correctamente.
--Modificar Vista con ALTER
ALTER VIEW V_CLIENTES
AS
SELECT Codigo_Cliente, Nombre_Cliente,
TelefonoMovil_Cliente
FROM TB_Cliente
GO
--Resultado de ejecutar el comando Alter
Comandos completados correctamente.
Problema Prctico
--Ejemplo #
--Eliminar Vista con DROP
DROP VIEW V_CLIENTES
Comandos completados correctamente.
Problema Prctico
--Ejemplo #
--Creando vista de la Tabla Proveedores
CREATE VIEW V_PROVEEDORES
AS
SELECT Codigo_Proveedor, Nombre_Proveedor, PrimerApellido_Proveedor
FROM TB_Proveedor
GO
--Creando una vista a partir de la vista Proveedores
SELECT * FROM V_PROVEEDORES
SELECT * FROM TB_PROVEEDOR
CREATE VIEW V_PRODUCTOS_VPROVEEDORES
AS
SELECT VTBPROV.Codigo_Proveedor, Nombre_Proveedor,
TBPROD.Codigo_Producto, Descripcion_Producto
FROM V_PROVEEDORES VTBPROV, TB_Producto TBPROD
WHERE VTBPROV.Codigo_Proveedor = TBPROD.Codigo_Proveedor
GO
Por: Dr. Cristian Pinzn
Problema Prctico
--Ejemplo #
--Creando vista de la Tabla Proveedores
CREATE VIEW V_PROVEEDORES
AS
SELECT Codigo_Proveedor, Nombre_Proveedor, PrimerApellido_Proveedor
FROM TB_Proveedor
GO
--Creando una vista a partir de la vista Proveedores
SELECT * FROM V_PROVEEDORES
SELECT * FROM TB_PROVEEDOR
CREATE VIEW V_PRODUCTOS_VPROVEEDORES
AS
SELECT VTBPROV.Codigo_Proveedor, Nombre_Proveedor,
TBPROD.Codigo_Producto, Descripcion_Producto
FROM V_PROVEEDORES VTBPROV, TB_Producto TBPROD
WHERE VTBPROV.Codigo_Proveedor = TBPROD.Codigo_Proveedor
GO
--Ejecutando la Vista
SELECT * FROM V_PRODUCTOS_VPROVEEDORES
Por: Dr. Cristian Pinzn
Problema Prctico
--Ejemplo #
--Creando vista de Clientes con Condicional AND - LIKE
ALTER VIEW V_Clientes_Direccion_Santiago
AS
SELECT codigo_cliente, nombre_cliente,
PrimerApellido_Cliente telefonomovil_cliente,
email_Cliente, Direccion_Cliente
FROM TB_Cliente
WHERE nombre_cliente LIKE 'C%' AND Direccion_Cliente
='Chiriqui
--Ejecutando la Vista
SELECT * from V_Clientes_Direccion_Santiago
Problema Prctico
--Ejemplo #
-- Crear Vista para Totalizar las Compras de los Clientes
(uso de la funcin SUM() Group By
Create VIEW V_Total_Factura_Cliente
AS
SELECT (TB_Cliente.Nombre_Cliente + ' ' +
TB_Cliente.PrimerApellido_Cliente) AS 'NOMBRE',
SUM(MONTO_TOTAL) AS 'MONTO' FROM TB_CLIENTE,
TB_Factura_Venta
WHERE TB_CLIENTE.Codigo_Cliente =
TB_Factura_Venta.Codigo_Cliente
GROUP BY (TB_Cliente.Nombre_Cliente + ' ' +
TB_Cliente.PrimerApellido_Cliente)
GO
--Ejecutando la Vista
SELECT * from V_Total_Factura_Cliente
Por: Dr. Cristian Pinzn
Problema Prctico
--Ejemplo #
-- Crear Vista para Totalizar y aplicar Condicional HAVING
CREATE VIEW V_Monto_Factura_Proveedor_Mayor_5000
AS
SELECT PROV.Nombre_Proveedor +' '+
PROV.PrimerApellido_Proveedor AS 'Nombre del Proveedor',
FC.codigo_factura, sum(monto) AS 'Monto Total'
FROM TB_Pago_Factura_Compra AS PFC, tb_factura_compra AS
FC, TB_Proveedor AS PROV
WHERE PFC.Codigo_Factura = FC.Codigo_Factura and
FC.Codigo_Proveedor = PROV.Codigo_Proveedor
GROUP BY nombre_proveedor, PrimerApellido_Proveedor,
FC.Codigo_Factura
having SUM(Monto) > 5000
--Ejecutar vista
SELECT * FROM V_Monto_Factura_Proveedor_Mayor_5000
Por: Dr. Cristian Pinzn
Problema Prctico
--Ejemplo #
-- Crear Vista Utilizando el Comando UNION
CREATE VIEW V_VENTA_COMPRA
AS
Select TB_Factura_Venta.Codigo_Factura as 'Numero Factura',
TB_Factura_Venta.Fecha_Factura,
TB_Factura_Venta.Monto_Total as 'Monto Total',
'Venta' as 'Tipo Transaccion'
FROM TB_Factura_Venta
UNION
SELECT TB_Factura_Compra.Codigo_Factura, Fecha_Factura,
TB_Factura_Compra.Monto_Total, 'Compra' as 'Transaccion'
FROM TB_Factura_Compra
GO
--Ejecucin de la Vista
SELECT * FROM V_VENTA_COMPRA
Por: Dr. Cristian Pinzn
Problema Prctico
--Ejemplo #
-- Actualizacin de Datos con UPDATE sobre una VISTA
SELECT * FROM V_CLIENTES
UPDATE V_CLIENTES SET Direccion_Cliente ='Bocas del Toro'
WHERE Direccion_Cliente='Chiriqui'
-- Verificacin de la Actualizacin
SELECT * FROM V_CLIENTES
-- Resultados de la Ejecucin
(3 filas afectadas)
Problema Prctico
--Ejemplo #
-- Eliminacin de Registros con DELETE sobre una VISTA
DELETE
-- Resultados de la Ejecucin
(2 filas afectadas)
Problema Prctico
--Ejemplo #
-- Problema con el ORDER BY No Soportado en Vistas
PROBLEMAS PROPUESTOS
Problema Prctico
/*
Problema Propuesto #1: Escribir el cdigo de la Vista para
consultar la factura de venta cuyo valor sea el ms alto y
el ms bajo.
*/
/*
Problema Propuesto #2: Escribir el cdigo de la Vista para
consultar todas las compras del Cliente con codigo 00001 y
donde se haya vendido del producto 100001. Mostrar
informacin: Codigo del cliente, Cdigo de factura,
Cantidad comprada.
*/
Problema Prctico
/*
Problema #3: Escribir el cdigo de la Vista para consultar
para cada cliente el gran monto total de todas sus facturas
en el rango de fecha que comprende desde el '28/03/2012' al
'20/04/2012'. Se debe mostrar la informacin del cdigo del
cliente, nombre, apellido y el monto total.
*/
/*
Problema #4.Escribir el cdigo de la Vista para consultar
el codigo del proveedor, nombre del Proveedor, primer
apellido y datos de contacto de los proveedores con
localizacin en chitre y
Panam y vendan productos cuyo
precio de costo sea superior a 50 balboas
*/
Problema Prctico
/*
Problema #5: Escribir el cdigo de la Vista para Consultar
el gran monto total de venta de cada producto registrado,
en todas las facturas de venta. Sin embargo, se mostrarn
slo aquellos productos que hayan sobrepasado la meta de
venta establecida en 1500.00. En la consulta se debe
presentar el cdigo del producto, descripcin y el monto
total de venta.
*/