PostgreSQL – VISTAS

Las vistas son pseudo tablas. Es decir, estas no son tablas reales; sin embargo, SELECT se muestra como tablas normales. Una vista puede representar un subconjunto de una tabla real seleccionando columnas específicas o filas específicas de una tabla normal. La vista puede incluso representar tablas concatenadas. Debido a que a las vistas se les asignan permisos separados, puede usarlos para restringir el acceso a una tabla de modo que los usuarios solo puedan ver filas o columnas específicas de la tabla.

Una vista puede contener todas las filas de una tabla o filas seleccionadas de una o más tablas. Se puede crear una vista a partir de una o más tablas, según la consulta PostgreSQL escrita para crear la vista.

Las vistas, que son una especie de tablas virtuales, permiten a los usuarios hacer lo siguiente:

  • Estructura tus datos para que los usuarios o clases de usuarios encuentren una forma natural o intuitiva.

  • Restrinja el acceso a los datos para que el usuario solo pueda ver datos limitados y no la tabla completa.

  • Resuma datos de varias tablas que puede utilizar para crear informes.

Dado que las vistas no son tablas regulares, no puede DELETE, INSERT o UPDATE sentencias en una vista. Sin embargo, puede crear una REGLA para resolver este problema usando ELIMINAR, INSERTAR o ACTUALIZAR en la vista.

Creando vistas

Las vistas de PostgreSQL se crean utilizando CREAR VISTA declaración. Las vistas de PostgreSQL se pueden crear a partir de una sola tabla, varias tablas u otra vista.

La sintaxis básica de CREATE VIEW es la siguiente:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

Puede incluir varias tablas en su declaración SELECT de la misma manera que las usa en una consulta SELECT de PostgreSQL normal. Si la palabra clave opcional TEMP o TEMPORARY está presente, la vista se creará en un espacio temporal. Las vistas temporales se eliminan automáticamente al final de la sesión actual.

Ejemplo

Tenga en cuenta que la tabla EMPRESA tiene las siguientes entradas:

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000

Ahora, a continuación se muestra un ejemplo de cómo crear una vista desde la tabla EMPRESA. Esta vista se utilizará para tener solo algunas columnas de la tabla EMPRESA:

testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

Ahora puede consultar COMPANY_VIEW de la misma manera que consulta la tabla real. A continuación se muestra un ejemplo:

testdb=# SELECT * FROM COMPANY_VIEW;

Esto dará el siguiente resultado:

 id | name  | age
----+-------+-----
  1 | Paul  |  32
  2 | Allen |  25
  3 | Teddy |  23
  4 | Mark  |  25
  5 | David |  27
  6 | Kim   |  22
  7 | James |  24
(7 rows)

Eliminando vistas

Para eliminar una vista, simplemente use la instrucción DROP VIEW con view_name… La sintaxis básica de DROP VIEW es la siguiente:

testdb=# DROP VIEW view_name;

El siguiente comando eliminará COMPANY_VIEW que creamos en la última sección:

testdb=# DROP VIEW COMPANY_VIEW;

🚫