Crear una vista con CREATE VIEW en PostgreSQL

El siguiente artículo muestra cómo crear una vista con Create view en PostgreSQL. SI te acabas de iniciar en el mundo PostgreSQL una vista sencillamente es crear una tabla virtual que al ser llamada ejecutara la sentencia que se le indique en su construcción obteniendo datos de una o varias tablas (también conocidas como tablas base) Normalmente se utiliza para resolver consultas altamente complejas. Una vista no guarda datos y una vez creada se utilizan como si de una tabla se tratase.

Crear una vista

Sintaxis

La sintaxis para crear una vista en PostgreSQL es muy sencilla:

CREATE VIEW nombre_vista 
AS consulta;Lenguaje del código: PHP (php)

En la anterior sintaxis:

  • Nombre_vista: es el nombre que va tener la vista. Cuando ejecutes una consulta deberás llamarla por este nombre.
  • Consulta: debes definir qué consulta se va ejecutar cuando la vista sea ejecutada desde otra consulta.

Ejemplo

En el siguiente ejemplo puedes ver cómo creamos una vista llamada vista_nueva que contendrá el ID y el nombre de la tabla empleados y el ID y nombre de la tabla departamentos. Como tenemos dos columnas que se llaman nombre debemos asignarle un alias a la columna o fallará la creación.

CREATE VIEW vista_nueva
AS select e.id_empleado, e.nombre Empleado, d.id_departamento, d.nombre Departamento
from empleados e
inner join departamentos d on d.id_departamento = e.id_departamento;Lenguaje del código: JavaScript (javascript)

Cualquier cambios que realices en las tablas base también se verán afectadas las vistas. Por ejemplo, si borras un campo de una de las tablas base y una vista lo utiliza, la vista fallará cuando se le invoque desde una consulta.

¿Cómo consultar una vista?

Para consultar una vista simplemente escribe su nombre donde desees utilizarla (recuerda que si actualizas datos en las tablas base automáticamente se verán reflejados en la vista). Por ejemplo:

select * from vista_nueva;Lenguaje del código: JavaScript (javascript)

Modificar una vista

Aunque parezca raro modificar una vista también se puede hacer con el comando CREATE VIEW pero añadiendo seguidamente OR REPLACE. De este modo si la vista existe nos la reemplazará por la consulta que le indiquemos. Ten en cuenta que la nueva consulta debe tener el mismo número de columnas, los mismos tipos de datos y en el mismo orden. Lo que sí permite PostgreSQL es crear nuevas columnas, pero estas irán al final no pudiéndose colocar en el orden que queramos. Si quieres modificar la estructura de la vista con menos columnas o de otros tipos hay que utilizar ALTER VIEW.

En el siguiente ejemplo añadimos una nueva columna llamada puesto a una vista ya existente:

CREATE OR REPLACE VIEW vista_nueva
AS select e.id_empleado, e.nombre Empleado, d.id_departamento, d.nombre Departamento, e.puesto
from empleados e
inner join departamentos d on d.id_departamento = e.id_departamento;Lenguaje del código: JavaScript (javascript)

Escribir un comentario