PostgreSQL 例を使用してビューを作成する

⚡ スマートサマリー

PostgreSQL ビューは、保存されたSELECTクエリから構築される擬似テーブルであり、複雑なクエリや頻繁に使用されるクエリを単一の名前でラップし、通常のテーブルと同様に読み取り、更新、または削除することができます。

  • 🗂️ 擬似テーブル: ビューはデータではなくクエリを格納しますが、テーブルのように選択できます。
  • 🛠️ 作成: CREATE VIEW は、複数の基本テーブルにまたがる場合でも、SELECT クエリに名前を付けて、簡単に再利用できるようにします。
  • ♻️ 置換: ビューの作成または置換は、ドロップせずにビューを変更します。ping ボーマンは
  • 🗑️ 落とす: DROP VIEW はビューを削除し、IF EXISTS はエラーを回避します。
  • 🤖 AIヘルプ: AIアシスタントはビュー定義を生成し、どのクエリをラップするかを提案します。

PostgreSQL ビューを作成

何ですか PostgreSQL 意見?

In PostgreSQL、ビューは疑似テーブルです。これは、ビューが実際のテーブルではないことを意味します。ただし、通常のテーブルとして SELECT することはできます。ビューにはテーブル列のすべてまたは一部を含めることができます。ビューは、複数のテーブルを表すこともできます。

これらのテーブルはベーステーブルと呼ばれます。ビューを作成する際は、クエリを作成して名前を付けるだけでよく、ラップに便利なツールとなります。ping 複雑でよく使われるクエリ。

作成 PostgreSQL ビュー

作成するには PostgreSQL ビューを作成するには、CREATE VIEW ステートメントを使用します。このステートメントの構文は次のとおりです。

CREATE [OR REPLACE] VIEW view-name AS
  SELECT column(s)
  FROM table(s)
  [WHERE condition(s)];

OR REPLACE パラメータは、ビューがすでに存在する場合にビューを置き換えます。 省略した場合、ビューがすでに存在する場合、エラーが返されます。

view-name パラメータは、作成する必要があるビューの名前です。

WHERE句の条件は任意ですが、ビューにレコードを追加するには、これらの条件を満たす必要があります。

以下の価格表を考えてみましょう。

価格:

作成 PostgreSQL ビュー

上の表からビューを作成してみましょう。

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

上記のコマンドは、 SELECTステートメント。 価格が 200 を超えるレコードのみがビューに追加されます。 ビューには Price_View という名前が付けられています。 クエリを実行して内容を確認してみましょう。

SELECT *
FROM Price_View;

これにより、次が返されます。

作成 PostgreSQL ビュー

ベース テーブルには 4 つのレコードがありますが、ビューに追加されたのは 2 つだけです。

ここでは、ビューに追加できる列は1つだけです。価格テーブルの列を1つだけ含むビューを作成してみましょう。

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

ビューには Price_View2 という名前が付けられており、Price テーブルの価格列のみが含まれています。 ビューにクエリを実行して、その内容を確認してみましょう。

SELECT *
FROM Price_View2;

これにより、次が返されます。

作成 PostgreSQL ビュー

を変える、 PostgreSQL ビュー

ビューの定義は、削除しなくても変更できます。 これは、CREATE OR REPLACE VIEW ステートメントを使用して行われます。

Price_View2 という名前のビューを更新して、これを実証してみましょう。

価格_ビュー2:

を変える、 PostgreSQL ビュー

Book テーブルは次のとおりです。

本:

を変える、 PostgreSQL ビュー

価格表は次のとおりです。

価格:

を変える、 PostgreSQL ビュー

次のクエリは、ビュー Price_View2 を更新するのに役立ちます。

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

次に、ビューにクエリを実行して、その内容を確認してみましょう。

を変える、 PostgreSQL ビュー

ビューが変更され、XNUMX つの異なるテーブルからの XNUMX つの列が表示されます。 これは、JOIN ステートメントを使用して実現されます。

削除 PostgreSQL ビュー

削除する必要があるときはいつでも、 PostgreSQL ビューを削除するには、DROP VIEW ステートメントを使用できます。ステートメントの構文は次のとおりです。

DROP VIEW [IF EXISTS] view-name;

パラメータ view-name は、削除するビューの名前です。

この構文では、IF EXISTS は省略可能です。指定せずに存在しないビューを削除しようとすると、エラーが発生します。

たとえば、Price_View2 という名前のビューを削除するには、次のステートメントを実行します。

DROP VIEW Price_View2;

ビューは削除されます。

pgAdminの使用

それでは、これらの操作をpgAdminを使ってどのように実行できるかを見ていきましょう。

作成 PostgreSQL ビュー

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  • 左側のナビゲーション バーで、[データベース] をクリックします。
  • 「デモ」をクリックします。

作成 PostgreSQL pgAdmin を使用したビュー

ステップ3) クエリ エディターにクエリを入力します。

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

ステップ4) 「実行」ボタンをクリックします。

作成 PostgreSQL pgAdmin を使用したビュー

ステップ5) ビューの内容を表示するには、以下の手順を実行してください。

  • クエリ エディターに次のコマンドを入力します。
SELECT *
FROM Price_View;
  • 「実行」ボタンをクリックします。

作成 PostgreSQL pgAdmin を使用したビュー

次のように返されます。

作成 PostgreSQL pgAdmin を使用したビュー

ビュー Price_View2 を作成するには、次の手順を実行します。

ステップ1) クエリ エディターに次のクエリを入力します。

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

ステップ2) 「実行」ボタンをクリックします。

作成 PostgreSQL pgAdmin を使用したビュー

ステップ3) ビューの内容を表示するには、次の手順を実行します。

  • クエリ エディターに次のクエリを入力します。
SELECT *
FROM Price_View2;
  • 「実行」ボタンをクリックします。

作成 PostgreSQL pgAdmin を使用したビュー

次のように返されます。

作成 PostgreSQL pgAdmin を使用したビュー

を変える、 PostgreSQL ビュー

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  • 左側のナビゲーション バーで、[データベース] をクリックします。
  • 「デモ」をクリックします。

を変える、 PostgreSQL pgAdmin を使用したビュー

ステップ3) クエリ エディターにクエリを入力します。

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

ステップ4) 「実行」ボタンをクリックします。

を変える、 PostgreSQL pgAdmin を使用したビュー

ステップ5) クエリ エディターに次のクエリを入力します。

SELECT *
FROM Price_View2;

次のように返されます。

を変える、 PostgreSQL pgAdmin を使用したビュー

削除 PostgreSQL ビュー

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  • 左側のナビゲーション バーで、[データベース] をクリックします。
  • 「デモ」をクリックします。

削除 PostgreSQL pgAdmin を使用したビュー

ステップ3) クエリ エディターにクエリを入力します。

DROP VIEW Price_View2;

ステップ4) 「実行」ボタンをクリックします。

削除 PostgreSQL pgAdmin を使用したビュー

ビューは削除されます。

このチュートリアルで使用するデータベースをダウンロードする

よくあるご質問

テーブルは物理的にデータをディスク上に格納します。ビューはSELECTクエリのみを格納するため、ビューをクエリするとそのクエリが再実行され、基となるテーブルから最新のデータが返されます。

マテリアライズドビューは、クエリ結果をディスクにキャッシュします。プレーンビューよりも高速に読み取れますが、新しいデータを表示するには「マテリアライズドビューの更新」を実行する必要があります。

標準ビューは毎回クエリを実行し、リアルタイムのデータを表示します。マテリアライズドビューは速度向上のために結果をディスクに保存しますが、更新されるまでは古いデータが表示される可能性があります。

場合によります。集計のない単純な単一テーブルビューは自動的に更新されるため、INSERT、UPDATE、DELETEが直接機能します。複雑なビューにはINSTEAD OFトリガーが必要です。

カタログをクエリするには、SELECT table_name FROM information_schema.views WHERE table_schema = 'public' を実行します。pgAdmin では、スキーマの下にある Views ノードを展開できます。

AIアシスタントは、平易な言葉で書かれたリクエストをCREATE VIEWステートメントに変換し、ビューに名前を付け、適切なWHERE句とJOIN句を追加することで、頻繁に再利用するクエリの実行速度を向上させます。

はい。長いSELECT文を貼り付けると、AIアシスタントがそれをCREATE OR REPLACE VIEWで囲み、名前を提案し、重複する名前を避けるためにエイリアスが必要な列にフラグを付けます。

通常のビューでは、SELECT文が毎回実行されるため、クエリの速度は向上しません。繰り返し読み取りを高速化するには、結果をディスクに保存し、更新されるまで保持するマテリアライズドビューを使用してください。