sql >> Database >  >> RDS >> PostgreSQL

Een weergave maken in PostgreSQL

Met PostgreSQL-weergaven kunt u eenvoudig query's opslaan en later oproepen. SQL-weergaven zijn erg handig voor het opslaan van query's die u vaak moet uitvoeren. Hier leest u hoe u een weergave maakt in PostgreSQL met behulp van de PostgreSQL-opdracht voor het maken van een weergave.

Hoe maak je een weergave in PostgreSQL

Hier zijn de stappen om een ​​weergave te maken in PostgreSQL. Hier is de syntaxis van PostgreSQL create view statement

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

In de bovenstaande SQL-query, view_name is de naam van de SQL-weergave waarin u uw SQL-query wilt opslaan. TIJDELIJK/TIJDELIJK is een optioneel trefwoord om tijdelijke weergaven te maken die aan het einde van uw huidige sessie worden verwijderd.

Na het AS-trefwoord kunt u uw volledige SQL-query invoeren die u als weergave wilt opslaan.

Hier is een voorbeeld om een ​​weergave te maken in PostgreSQL. Stel dat u de volgende tabel product_sales. . heeft

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

Stel dat u een SQL-weergave wilt maken op basis van een query die de totale verkoop per product berekent. Dit is de SQL-query om een ​​PostgreSQL-weergave te maken.

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 lezen:hoe u de eerste rij per groep krijgt in PostgreSQL

PostgreSQL-weergave maken van meerdere tabellen

U kunt ook een weergave maken in PostgreSQL van meerdere tabellen met dezelfde aanpak. Vervang gewoon de SELECT-query in de CREATE VIEW-instructie om gegevens uit meerdere tabellen op te halen.

Hier is een voorbeeld van PostgreSQL CREATE VIEW van meerdere tabellen.

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;

Bonus lezen:ontbrekende datums in PostgreSQL invullen

Hoe de definitie weergeven in PostgreSQL

U kunt eenvoudig de weergavedefinitie in PostgreSQL zien met \d+ opdracht. Hier is de SQL-query om de weergavedefinitie weer te geven

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 lezen:Percentiel berekenen in PostgreSQL

U kunt hetzelfde ook doen met pg_get_viewdef functie

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 lezen:rijnummer krijgen in PostgreSQL

Hoe u weergaven in PostgreSQL kunt neerzetten

U kunt PostgreSQL-weergaven eenvoudig verwijderen met de instructie DROP VIEW.

postgresql# DROP VIEW view_name;

Hier is de SQL-query om de weergave in PostgreSQL te laten vallen

postgresql# DROP VIEW sales_summary;

Hopelijk kun je gemakkelijk een weergave maken in PostgreSQL.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Gebruikerswachtwoord wijzigen in PostgreSQL

  2. Waarschuwingen en operators gebruiken in SQL Server

  3. Hoe installeer ik een Python-pakket op Linux zodat het wordt gevonden door de reeds werkende PostgreSQL 13 plpython3u-extensie?

  4. hoe PostgreSQL jsonb op te slaan met SpringBoot + JPA?