sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan opretter du visning i PostgreSQL

PostgreSQL-visninger giver dig mulighed for nemt at gemme forespørgsler og ringe til dem senere. SQL-visninger er meget nyttige til at gemme forespørgsler, som du skal køre ofte. Sådan opretter du visning i PostgreSQL ved hjælp af PostgreSQL create view-erklæring.

Sådan opretter du visning i PostgreSQL

Her er trinene til at oprette visning i PostgreSQL. Her er syntaksen for PostgreSQL create view statement

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

I ovenstående SQL-forespørgsel, view_name er navnet på SQL-visningen, hvor du vil gemme din SQL-forespørgsel. TEMP/TEMPORARY er et valgfrit søgeord til at oprette midlertidige visninger, der slettes i slutningen af ​​din nuværende session.

Efter AS nøgleord kan du indtaste hele din SQL-forespørgsel, som du vil gemme som visning.

Her er et eksempel på at oprette visning i PostgreSQL. Lad os sige, at du har følgende tabel produktsalg.

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

Lad os sige, at du vil oprette SQL-visning fra forespørgsel, der beregner det samlede salg pr. produkt. Her er SQL-forespørgslen til at oprette PostgreSQL-visning.

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:Sådan får du første række pr. gruppe i PostgreSQL

PostgreSQL Opret visning fra flere tabeller

Du kan også oprette visning i PostgreSQL fra flere tabeller ved at bruge den samme tilgang. Du skal bare erstatte SELECT-forespørgslen i CREATE VIEW-sætningen for at hente data fra flere tabeller.

Her er et eksempel på PostgreSQL CREATE VIEW fra flere 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æser:Sådan udfyldes manglende datoer i PostgreSQL

Sådan viser du visningsdefinition i PostgreSQL

Du kan nemt se visningsdefinition i PostgreSQL ved hjælp af \d+ kommando. Her er SQL-forespørgslen for at vise visningsdefinition

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:Sådan beregnes procent i PostgreSQL

Du kan også gøre det samme ved at bruge 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:Sådan får du rækkenummer i PostgreSQL

Sådan dropper du visninger i PostgreSQL

Du kan nemt droppe PostgreSQL-visninger ved hjælp af DROP VIEW-sætning.

postgresql# DROP VIEW view_name;

Her er SQL-forespørgslen, der skal slettes i PostgreSQL

postgresql# DROP VIEW sales_summary;

Forhåbentlig kan du nemt oprette visning i PostgreSQL.

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Eksklusiv! Slut dig til os med vores gæste Michal Bar, Access Program Manager

  2. fremad cross edition triggere i R12.2

  3. Hvordan rettes indholdsudbyderens url, der ikke findes i Android-indholdsudbyderen?

  4. Hvorfor er aggregerede funktioner ikke tilladt i where-klausulen