SQLite ビュー(View)

ビュー(View)は、関連する名前でデータベースに保存された SQLite ステートメントにすぎません。ビュー(View)は、実際には定義済みの SQLite クエリの形式で存在するテーブルの組み合わせです。

ビュー(View)は、1つのテーブルのすべての行、または1つ以上のテーブルから選択した行を含めることができます。ビュー(View)は、作成するビューの SQLite クエリに応じて、1つ以上のテーブルから作成できます。

ビュー(View)は仮想テーブルであり、ユーザーが以下の点を実現できるようにします:

  • ユーザーまたはユーザーグループが構造化データを検索する方法が、より自然または直感的になります。

  • データアクセスを制限し、ユーザーは完全なテーブルではなく限られたデータのみを表示できます。

  • さまざまなテーブルのデータを集約して、レポートを生成するために使用します。

SQLite ビューは読み取り専用であるため、ビューに対して DELETE、INSERT、または UPDATE ステートメントを実行できない場合があります。ただし、ビュー上にトリガーを作成でき、ビューに対して DELETE、INSERT、または UPDATE を試みたときにトリガーが発火し、実行する必要があるアクションはトリガーの内容で定義されます。

ビューの作成

SQLite のビューは、CREATE VIEWステートメントを使用して作成されます。SQLite ビューは、単一のテーブル、複数のテーブル、または他のビューから作成できます。

CREATE VIEW の基本構文は次のとおりです:

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

SELECT ステートメントに複数のテーブルを含めることができます。これは、通常の SQL SELECT クエリと非常によく似ています。オプションの TEMP または TEMPORARY キーワードを使用した場合、ビューは一時データベースに作成されます。

例

COMPANY テーブルに次のレコードがあるとします:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

次に、COMPANY テーブルからビューを作成する例を示します。このビューは、COMPANY テーブルからいくつかの列のみを選択します:

sqlite> CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

次に、実際のテーブルをクエリするのと同様に COMPANY_VIEW をクエリできます。以下は例です:

sqlite> SELECT * FROM COMPANY_VIEW;

これにより、次の結果が生成されます:

ID          NAME        AGE
----------  ----------  ----------
1           Paul        32
2           Allen       25
3           Teddy       23
4           Mark        25
5           David       27
6           Kim         22
7           James       24

ビューの削除

ビューを削除するには、view_nameを付けた DROP VIEW ステートメントを使用します。DROP VIEW の基本構文は次のとおりです:

sqlite> DROP VIEW view_name;

次のコマンドは、前述で作成した COMPANY_VIEW ビューを削除します:

sqlite> DROP VIEW COMPANY_VIEW;
その他の拡張機能