Escolar Documentos
Profissional Documentos
Cultura Documentos
GUIA DE VISTAS
-SQL
Guía básica usando Postgre SQL
INTRODUCCION A
LAS VISTAS SQL
USANDO POSTGRE-SQL
CONCEPTOS Y DEFINICION
VENTAJAS Y DESVENTAJAS
DE LAS VISTAS SQL
Guía de Vistas SQL – Postgre SQL
Los usuarios que acceden a una base de datos relacional, lo hacen típicamente a
través de vistas, de modo que diferentes usuarios tienen diferentes vistas.
Una vista, en sí, es una “tabla virtual” derivada, con nombre. El término virtual
significa que la tabla no existe como tal, pero para el usuario si parece existir. Por el
contrario una tabla es real, en el sentido que existe y está almacenada en algún
dispositivo físico de almacenamiento.
Las vistas no se sustentan en datos almacenados físicamente, solo se almacena su
definición en el catálogo de sistema, y esta construida en base a otras tablas.
Las vistas tienen la misma estructura que una tabla : filas y columnas. los datos se
recuperan mediante una consulta SELECT y se presentarán igual que los de una tabla.
Como dijimos anteriormente, una vista es una relación virtual cuya extensión se
deriva de las relaciones básicas de la base de datos, es decir, por medio de sentencias
SELECT.
Ejemplo sencillo :
En este ejemplo se crea una vista con el nombre “cliente_apellido” que consulta
por todos los clientes cuyo apellido paterno comienza con la letra A.
Guía de Vistas SQL – Postgre SQL
CARACTERISTICAS NO SOPORTADAS
INTRODUCCION A
LAS VISTAS SQL
USANDO POSTGRE-SQL
DEFINICION SQL
EJEMPLOS DE VISTAS
LLAMADAS A VISTAS
Guía de Vistas SQL – Postgre SQL
Como podemos apreciar, existe una similitud muy grande entre una consulta
SELECT y la creación de una vista propiamente tal, de hecho, una vista es una definión
almacenada de una consulta SELECT SQL, tambien notemos que esta es una definición
básica de vista pues las cláusulas de la sentencia de consulta SELECT son muy amplias y
pueden tambien aplicarse a la vista..
Guía de Vistas SQL – Postgre SQL
detalle_ventas unidades
id_venta <fk1> id_unidad <pk>
id_producto <fk2> productos descripcion
id_unidad <fk3> id_unidad <pk>
cantidad id_producto <pk>
precio_unit id_unidad <fk1> id_unidad
total_prod id_categoria <fk2>
nombre
descripcion
venta precio_venta categoria
producto stock_actual id_categoria <pk>
unidad id_producto <pk> descripcion
id_productos id_categoria <pk>
id_categoria
Ciertamente esta podría ser la vista necesitada para nuestro primer ejemplo, pero
también podemos considerar las cláusulas de unión JOIN para establecer nuestras
relaciones, de esta forma podemos redefinir esta misma vista utilizando en vez de la
clausula WHERE una cláusula JOIN :
Claramente entonces esta segunda vista es mas sencilla que la primera y por ende
más veloz en términos de tiempos de respuesta del motor de base de datos.
• EJEMPLO 2 : Se necesita implementar una vista con el nombre “datos_clientes” que
despliege los datos personales de nuestros clientes, esto implica saber tambien, el
giro del cliente, la ciudad y la región en la cual viven, ordenados por apellido y
nombres :
En este caso establecemos las relaciones entre cuatro tablas ( clientes, giros,
ciudades y región) los datos importantes son los del cliente, pero también existen otros
datos asociados a las otras tablas. Consideremos que la tabla de regiones no esta
directamente vinculada a los clientes, entonces, establecemos primero una condición de
unión o JOIN entre la tabla de clientes y la de giros por medio del campo id_giro, este
“nuevo conjunto de datos” se une nuevamente a un “segundo grupo de datos” que
nacen a partir de la unión entre la tabla de ciudades y la de regiones a través del campo
id_region finalmente estos dos conjuntos de datos por medio del campo id_ciudad.
Guía de Vistas SQL – Postgre SQL
Cabe notar que las tablas de sistema en PostgreSQL comienzan todas con el prefijo
“pg_”, entonces para consultar sólo por las tablas de usuario, debemos excluir todas
aquellas que son de sistema. Existen más tablas de sistema que alojan información
importante y muchas veces crítica de la base de datos Postgre, es por ello que no se
recomienda manipular los datos de las tablas de sistema pues se pueden causar daños
en la integridad de la base de datos.
De esta forma hemos creado una vista relativamente compleja por el numero de
relaciones entre tablas, sin embargo, todavía no sabemos efectuar llamadas a vistas, ese
será nuestro próximo punto a tratar.
LLAMADAS A VISTAS.
Como lo dijimos anteriormente, las vistas tienen la misma estructura que una
tabla, es decir, poseen filas y columnas, los datos se recuperan mediante una consulta
SELECT y se presentarán igual que los de una tabla, de esta forma solo es necesario
saber el nombre de la vista a recuperar, por lo tanto las llamadas a vistas pueden ser de
las siguentes formas.
• EJEMPLO 1 :
SELECT * FROM vista_ciudades;
Esta vista devolverá tal cual como fué definida el codigo y nombre de ciudad y
tambien el codigo y nombre de región para cada ciudad, tal cual como fué definida
anteriormente,
• EJEMPLO 2 :
SELECT * FROM vista_ciudades WHERE id_region = 'R-09';
Esta otra llamada devolverá los mismos datos, sin embargo, hemos añadido a las
condiciones internas de la vista nuestra propia condicion, para este caso, que el ID de la
región sera igual a R-09.
Claramente en este caso podemos apreciar la potencialidad de las vistas pues
extendemos las condiciones y acotamos más aún nuestro conjunto de datos pudiendo
llegar a generar vistas genéricas que nos permitan obtener no solo un tipo de consulta
sino muchas consultas de forma más personalizada.
• EJEMPLO 3 :
SELECT * FROM vista_ciudades WHERE nombre_ciudad LIKE 'C%'
ORDER BY nombre_ciudad
Guía de Vistas SQL – Postgre SQL
Recordemos que esta vista (“vista_ciudades”) fué definida con un orden, sin
embargo, podemos reasignar el orden en el cual deseamos el conjunto de datos, en este
caso, por nombre de ciudad, de igual forma que en el ejemplo anterior, establecemos una
condición para mostrar solo las ciudades que comienzen con la letra “C”.
• EJEMPLO 4 :
SELECT * FROM show_tables;
Este ejemplo muy sencillo permite mostrar las tablas que están definidas en
nuestra base de datos, cabe notar que esta sentencia SELECT es muy similar a la vista de
sistema pg_tables que puede ser llamada de la siguiente forma: SELECT * FROM
pg_tables;
• EJEMPLO 5 :
SELECT rut_cliente, nombres, apellidos,
direccion, telefono,
nombre_giro, nombre_ciudad
FROM datos_clientes;
• EJEMPLO 6 :
SELECT * FROM registro_ventas
WHERE num_factura = '0055009'
ELIMINAR VISTAS.
La sentencia es muy sencilla, por lo que no será necesario aplicar ejemplos para
eliminar una vista, puesto que solo es necesario saber el nombre de ella para eliminarla.
NOTA : No puede eliminar vistas de sistema pues dichas vistas están pre definidas en el
momento de crear la base de datos