sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo crear una vista en PostgreSQL

Las vistas de PostgreSQL le permiten almacenar consultas fácilmente y llamarlas más tarde. Las vistas SQL son muy útiles para guardar consultas que necesita ejecutar con frecuencia. Aquí se explica cómo crear una vista en PostgreSQL usando la declaración de creación de vista de PostgreSQL.

Cómo crear una vista en PostgreSQL

Estos son los pasos para crear una vista en PostgreSQL. Esta es la sintaxis de la instrucción Create View de PostgreSQL

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

En la consulta SQL anterior, view_name es el nombre de la vista SQL donde desea almacenar su consulta SQL. TEMP/TEMPORARY es una palabra clave opcional para crear vistas temporales que se eliminan al final de la sesión actual.

Después de la palabra clave AS, puede ingresar la consulta SQL completa que desea guardar como vista.

Aquí hay un ejemplo para crear una vista en PostgreSQL. Supongamos que tiene la siguiente tabla product_sales.

postgres=# select * from product_sales;

 product | order_date | sale
---------+------------+------
 A       | 2020-05-01 |  250
 B       | 2020-05-01 |  350
 C       | 2020-05-01 | 1250
 A       | 2020-05-02 |  450
 B       | 2020-05-02 |  650
 C       | 2020-05-02 | 1050
 A       | 2020-05-03 |  150
 B       | 2020-05-03 |  250
 C       | 2020-05-03 | 1850

Supongamos que desea crear una vista SQL a partir de una consulta que calcule las ventas totales por producto. Aquí está la consulta SQL para crear una vista de PostgreSQL.

postgres=# create view sales_summary as
           select product, sum(sale)
           from product_sales
           group by product;

postgres=# select * from sales_summary;
 product | sum
---------+------
 B       | 1250
 C       | 4150
 A       |  850

Lectura adicional:Cómo obtener la primera fila por grupo en PostgreSQL

PostgreSQL Crear vista a partir de varias tablas

También puede crear una vista en PostgreSQL a partir de varias tablas utilizando el mismo enfoque. Simplemente reemplace la consulta SELECT en la instrucción CREATE VIEW para obtener datos de varias tablas.

Este es un ejemplo de PostgreSQL CREATE VIEW de varias tablas.

postgres=# create view multi_table as
select product,sale,order_date, order_id
from product_sales,orders
where product_sales.order_id=orders.order_id;

Lectura adicional:Cómo completar las fechas que faltan en PostgreSQL

Cómo mostrar la definición de vista en PostgreSQL

Puede ver fácilmente la definición de vista en PostgreSQL usando \d+ dominio. Aquí está la consulta SQL para mostrar la definición de vista

postgres=# \d+ sales_summary;
                      View "public.sales_summary"
 Column  |          Type          | Modifiers | Storage  | Description
---------+------------------------+-----------+----------+-------------
 product | character varying(255) |           | extended |
 sum     | bigint                 |           | plain    |
View definition:
 SELECT product_sales.product,
    sum(product_sales.sale) AS sum
   FROM product_sales
  GROUP BY product_sales.product;

Lectura adicional:Cómo calcular el percentil en PostgreSQL

También puede hacer lo mismo usando pg_get_viewdef función

postgres=# select pg_get_viewdef('sales_summary', true);
           pg_get_viewdef
------------------------------------
  SELECT product_sales.product,    +
     sum(product_sales.sale) AS sum+
    FROM product_sales             +
   GROUP BY product_sales.product;

Lectura adicional:cómo obtener el número de fila en PostgreSQL

Cómo descartar vistas en PostgreSQL

Puede eliminar fácilmente las vistas de PostgreSQL mediante la instrucción DROP VIEW.

postgresql# DROP VIEW view_name;

Aquí está la consulta SQL para soltar la vista en PostgreSQL

postgresql# DROP VIEW sales_summary;

Con suerte, puede crear fácilmente una vista en PostgreSQL.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!