PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak stworzyć widok w PostgreSQL

Widoki PostgreSQL pozwalają na łatwe przechowywanie zapytań i późniejsze ich wywoływanie. Widoki SQL są bardzo przydatne do zapisywania zapytań, które trzeba często uruchamiać. Oto jak utworzyć widok w PostgreSQL za pomocą instrukcji tworzenia widoku PostgreSQL.

Jak utworzyć widok w PostgreSQL

Oto kroki, aby utworzyć widok w PostgreSQL. Oto składnia instrukcji tworzenia widoku PostgreSQL

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

W powyższym zapytaniu SQL view_name to nazwa widoku SQL, w którym chcesz przechowywać zapytanie SQL. TEMP/TEMPORARY to opcjonalne słowo kluczowe do tworzenia tymczasowych widoków, które są usuwane pod koniec bieżącej sesji.

Po słowie kluczowym AS możesz wpisać całe zapytanie SQL, które chcesz zapisać jako widok.

Oto przykład tworzenia widoku w PostgreSQL. Załóżmy, że masz poniższą tabelę 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

Załóżmy, że chcesz utworzyć widok SQL na podstawie zapytania, które oblicza całkowitą sprzedaż na produkt. Oto zapytanie SQL do utworzenia widoku 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

Przeczytaj bonus:Jak uzyskać pierwszy wiersz na grupę w PostgreSQL

PostgreSQL Utwórz widok z wielu tabel

Możesz także utworzyć widok w PostgreSQL z wielu tabel, używając tego samego podejścia. Wystarczy zastąpić zapytanie SELECT w instrukcji CREATE VIEW, aby pobrać dane z wielu tabel.

Oto przykład PostgreSQL CREATE VIEW z wielu tabel.

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;

Przeczytaj bonus:Jak wypełnić brakujące daty w PostgreSQL

Jak wyświetlić definicję widoku w PostgreSQL

Możesz łatwo zobaczyć definicję widoku w PostgreSQL za pomocą \d+ Komenda. Oto zapytanie SQL, aby wyświetlić definicję widoku

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;

Przeczytaj bonus:Jak obliczyć percentyl w PostgreSQL

Możesz również zrobić to samo za pomocą pg_get_viewdef funkcja

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;

Przeczytaj bonus:Jak uzyskać numer wiersza w PostgreSQL

Jak porzucić widoki w PostgreSQL

Możesz łatwo upuścić widoki PostgreSQL za pomocą instrukcji DROP VIEW.

postgresql# DROP VIEW view_name;

Oto zapytanie SQL do upuszczenia widoku w PostgreSQL

postgresql# DROP VIEW sales_summary;

Mamy nadzieję, że możesz łatwo utworzyć widok w PostgreSQL.

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails i PostgreSQL:rola postgres nie istnieje

  2. Python psycopg2 nie wstawia się do tabeli postgresql

  3. Jak uzyskać aktualną datę i godzinę (bez strefy czasowej) w PostgreSQL?

  4. Jaki jest odpowiednik JDBC polecenia \connect Postgresa?

  5. PostgreSQL wiersz do kolumn