sql >> Databáze >  >> RDS >> PostgreSQL

Jak vytvořit pohled v PostgreSQL

Pohledy PostgreSQL vám umožňují snadno ukládat dotazy a volat je později. Zobrazení SQL jsou velmi užitečná pro ukládání dotazů, které potřebujete často spouštět. Zde je návod, jak vytvořit pohled v PostgreSQL pomocí příkazu vytvořit pohled PostgreSQL.

Jak vytvořit pohled v PostgreSQL

Zde jsou kroky k vytvoření pohledu v PostgreSQL. Zde je syntaxe příkazu Create View PostgreSQL

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

Ve výše uvedeném dotazu SQL název_zobrazení je název zobrazení SQL, kam chcete uložit svůj dotaz SQL. TEMP/TEMPORARY je volitelné klíčové slovo k vytvoření dočasných zobrazení, která jsou na konci vaší aktuální relace vynechána.

Za klíčové slovo AS můžete zadat celý svůj SQL dotaz, který chcete uložit jako zobrazení.

Zde je příklad vytvoření zobrazení v PostgreSQL. Řekněme, že máte následující tabulku 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

Řekněme, že chcete vytvořit zobrazení SQL z dotazu, který počítá celkový prodej na produkt. Zde je dotaz SQL pro vytvoření pohledu 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

Bonusové čtení:Jak získat první řádek na skupinu v PostgreSQL

PostgreSQL vytvořit pohled z více tabulek

Můžete také vytvořit pohled v PostgreSQL z více tabulek pomocí stejného přístupu. Stačí nahradit dotaz SELECT v příkazu CREATE VIEW a načíst data z více tabulek.

Zde je příklad PostgreSQL CREATE VIEW z více tabulek.

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;

Bonusové čtení:Jak vyplnit chybějící data v PostgreSQL

Jak zobrazit definici pohledu v PostgreSQL

Definici pohledu v PostgreSQL můžete snadno zobrazit pomocí \d+ příkaz. Zde je dotaz SQL pro zobrazení definice zobrazení

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;

Bonusové čtení:Jak vypočítat percentil v PostgreSQL

Totéž můžete udělat také pomocí pg_get_viewdef funkce

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;

Bonusové čtení:Jak získat číslo řádku v PostgreSQL

Jak zrušit zobrazení v PostgreSQL

Pohledy PostgreSQL můžete snadno zrušit pomocí příkazu DROP VIEW.

postgresql# DROP VIEW view_name;

Zde je dotaz SQL pro zrušení zobrazení v PostgreSQL

postgresql# DROP VIEW sales_summary;

Doufejme, že můžete snadno vytvořit pohled v PostgreSQL.

Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Jak najít všechny tabulky se sloupcem identity v databázi SQL Server - SQL Server / Výukový program T-SQL, část 45

  2. Jak importovat existující soubory *.sql v PostgreSQL 8.4?

  3. Správa indexů SQL Server Použití Správce indexů pro SQL Server

  4. Jak používat parametr Array/Table pro Oracle (ODP.NET 10g) přes ADO.NET/C#?