SQLite-ビュー

ビューは、関連する名前でデータベースに保存されるSQLiteステートメントに過ぎません。 実際には、事前定義されたSQLiteクエリの形式のテーブルの構成です。

ビューには、テーブルのすべての行、または1つ以上のテーブルから選択した行を含めることができます。 ビューは、作成されたSQLiteクエリに依存して1つまたは複数のテーブルから作成でき、ビューを作成します。

仮想テーブルの一種であるビューは、ユーザーがすることができます-

  • ユーザーまたはユーザーのクラスが自然または直感的に見えるようにデータを構造化します。
  • ユーザーが完全なテーブルではなく、限られたデータのみを表示できるように、データへのアクセスを制限します。
  • レポートの生成に使用できるさまざまなテーブルのデータを要約します。

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];

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

次のレコードを持つlink:/sqlite/company.sql [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;