Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Vistas en SQL
Qu son?
Las vistas pueden considerarse como tablas virtuales. Generalmente hablando, una tabla
tiene un conjunto de definiciones, y almacena datos fsicamente mientras que una vista
tambin tiene un conjunto de definiciones pero no almacena datos fsicamente.
Una vista es una alternativa para mostrar datos de varias tablas que almacena una
consulta. Los datos accesibles a travs de la vista no estn almacenados en la base de
datos como un objeto.
Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base. En general, se
puede dar un nombre a cualquier consulta y almacenarla como una vista.
Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una
unin de varias tablas; una combinacin de varias tablas; un resumen estadstico de una
tabla; un subconjunto de otra vista, combinacin de vistas y tablas.
De hecho, si no se sabe que se est trabajando con una vista, nada hace suponer que es
as. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar
datos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas
condiciones existen restricciones para realizar el resto de las operaciones sobre vistas.
Cmo se utilizan?
Una vista se define usando un "select".
Pgina 1
Vistas en SQL
La Instruccin SQL puede ser cualquiera de las instrucciones SQL que hemos visto.
Los nombres para vistas deben seguir las mismas reglas que cualquier identificador. Para
distinguir una tabla de una vista podemos fijar una convencin para darle nombres, por
ejemplo, colocar el sufijo vista y luego el nombre de las tablas consultadas en ellas.
Al crear una vista, SQL Server verifica que existan las tablas a las que se hacen referencia
en ella.
Se aconseja probar la sentencia "select" con la cual definiremos la vista antes de crearla
para asegurarnos que el resultado que retorna es el imaginado.
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.
Por lo tanto, las vistas fueron inventadas hace un buen tiempo, aunque solo fueron
disponibles en MySQL a partir de la versin 5.0.1.
Esto siendo dicho, hay formas en las que no tiene sentido usar una vista Por ejemplo:
Ejemplos de aplicacin
Utilicemos un ejemplo simple para ilustrar. Supongamos que tenemos la siguiente tabla:
Tabla Customer
Pgina 2
Vistas en SQL
Birth_Date datetime
Y deseamos crear una vista denominada V_Customer que contiene slo las columnas
First_Name, Last_Name y Pas de esta tabla, ingresaramos
FROM Customer;
View V_Customer
First_Name char(50)
Last_Name char(50)
Country char(25)
Podemos utilizar tambin una vista para aplicar uniones a dos tablas. En este caso, los
usuarios slo ven una vista en vez de dos tablas, y la instruccin SQL que los usuarios
necesitan emitir se vuelve mucho ms simple. Digamos que tenemos las siguientes dos
tablas:
Tabla Store_Information
Pgina 3
Vistas en SQL
Tabla Geography
Region_Name Store_Name
East Boston
Y deseamos construir una vista que tenga ventas organizadas segn la regin.
GROUP BY A1.Region_Name;
Esto nos brinda una vista, V_REGION_SALES, que se ha definido para las ventas de los
negocios segn los registros de la regin. Si deseamos saber el contenido de esta vista,
ingresamos,
Resultado:
REGION SALES
East 700
West 2050v
Pgina 4
Vistas en SQL
from empleados as e
join secciones as s
on codigo=seccion
From vista_empleados;
Los campos y expresiones de la consulta que define una vista deben tener un nombre. Se
debe colocar nombre de campo cuando es un campo calculado o si hay 2 campos con el
mismo nombre. Note que en el ejemplo, al concatenar los campos "apellido" y "nombre"
Los nombres de los campos y expresiones de la consulta que define una vista deben ser
nicos (no puede haber dos campos o encabezados con igual nombre). Note que en la
vista definida en el ejemplo, al campo "s.nombre" le colocamos un alias porque ya haba
un encabezado (el alias de la concatenacin) llamado "nombre" y no pueden repetirse, si
sucediera, aparecera un mensaje de error.
SENTENCIASSELECT
from TABLA;
Select datepart(year,fechaingreso),count(*)
From empleados
Group by datepart(year,fechaingreso)
La diferencia es que se colocan entre parntesis los encabezados de las columnas que
aparecern en la vista. Si no los colocamos y empleamos la sintaxis vista anteriormente,
se emplean los nombres de los campos o alias (que en este caso habra que agregar)
colocados en el "select" que define la vista. Los nombres que se colocan entre parntesis
deben ser tantos como los campos o expresiones que se definen en la vista.
Pgina 6