sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man skapar vy i PostgreSQL

PostgreSQL-vyer låter dig enkelt lagra frågor och ringa dem senare. SQL-vyer är mycket användbara för att spara frågor som du behöver köra ofta. Så här skapar du vy i PostgreSQL med PostgreSQL create view-sats.

Hur man skapar vy i PostgreSQL

Här är stegen för att skapa vy i PostgreSQL. Här är syntaxen för PostgreSQL skapa vy uttalande

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

I ovanstående SQL-fråga, view_name är namnet på SQL-vyn där du vill lagra din SQL-fråga. TEMP/TEMPORARY är ett valfritt sökord för att skapa tillfälliga vyer som tas bort i slutet av din nuvarande session.

Efter AS nyckelord kan du ange hela din SQL-fråga som du vill spara som vy.

Här är ett exempel för att skapa vy i PostgreSQL. Låt oss säga att du har följande tabell produktförsäljning.

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

Låt oss säga att du vill skapa SQL-vy från en fråga som beräknar den totala försäljningen per produkt. Här är SQL-frågan för att skapa PostgreSQL-vy.

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

Bonus Läs:Hur man får första raden per grupp i PostgreSQL

PostgreSQL Skapa vy från flera tabeller

Du kan också skapa vy i PostgreSQL från flera tabeller med samma tillvägagångssätt. Byt bara ut SELECT-frågan i CREATE VIEW-satsen för att hämta data från flera tabeller.

Här är ett exempel på PostgreSQL CREATE VIEW från flera tabeller.

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;

Bonusläsning:Hur man fyller i saknade datum i PostgreSQL

Hur man visar vydefinition i PostgreSQL

Du kan enkelt se vydefinitionen i PostgreSQL med \d+ kommando. Här är SQL-frågan för att visa vydefinition

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;

Bonus Läs:Hur man beräknar procent i PostgreSQL

Du kan också göra samma sak med pg_get_viewdef funktion

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;

Bonus Läs:Hur man får radnummer i PostgreSQL

Hur man släpper visningar i PostgreSQL

Du kan enkelt släppa PostgreSQL-vyer med DROP VIEW-satsen.

postgresql# DROP VIEW view_name;

Här är SQL-frågan för att ta bort vy i PostgreSQL

postgresql# DROP VIEW sales_summary;

Förhoppningsvis kan du enkelt skapa vy i PostgreSQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. kan inte få enkel PostgreSQL-insättning att fungera

  2. Hur man exporterar data till platt fil med BCP Utility och importerar data med Bulk Insert

  3. Kan jag skriva PostgreSQL-funktioner på Ruby on Rails?

  4. Anpassade numeriska formatsträngar som stöds av FORMAT() i SQL Server