概要 :このチュートリアルでは、SQLiteのCREATE VIEW
の使用方法を学習します データベースに新しいビューを作成するステートメント。
ビューとは
データベース理論では、ビューは保存されたクエリの結果セットです。ビューは、データベースに格納されている名前付きオブジェクトにクエリをパックする方法です。
ビューを介して、基になるテーブルのデータにアクセスできます。ビュー定義のクエリが参照するテーブルは、ベーステーブルと呼ばれます。
ビューが役立つ場合があります:
- まず、ビューはテーブル上に抽象化レイヤーを提供します。基になるテーブルのスキーマに触れることなく、ビューの列を追加および削除できます。
- 次に、ビューを使用して、結合を使用して複雑なクエリをカプセル化し、データアクセスを簡素化できます。
SQLiteビューは読み取り専用です。これは、 INSERT
を使用できないことを意味します 、 DELETE
、およびUPDATE
ビューを介してベーステーブルのデータを更新するステートメント。
SQLite CREATE VIEW
ステートメント
ビューを作成するには、CREATE VIEW
を使用します 次のようなステートメント:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;
Code language: SQL (Structured Query Language) (sql)
まず、ビューの名前を指定します。 IF NOT EXISTS
オプションは、存在しない場合にのみ新しいビューを作成します。ビューがすでに存在する場合、何もしません。
次に、TEMP
を使用します またはTEMPORARY
ビューを現在のデータベース接続でのみ表示する場合は、このオプションを選択します。ビューは一時ビューと呼ばれ、データベース接続が閉じられるたびにSQLiteは一時ビューを自動的に削除します。
3番目に、SELECT
を指定します ビューのステートメント。デフォルトでは、ビューの列はSELECT
の結果セットから派生します 声明。ただし、テーブルの列名とは異なるビュー列の名前を割り当てることができます
SQLite CREATE VIEW
例
CREATE VIEW
を使用して新しいビューを作成する例をいくつか見てみましょう。 ステートメント。
1)複雑なクエリを簡略化するためのビューの作成
次のクエリは、tracks
からデータを取得します 、albums
、media_types
およびgenres
内部結合句を使用したサンプルデータベースのテーブル。
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;
Code language: SQL (Structured Query Language) (sql)
試してみてください
このクエリに基づいてビューを作成するには、次のステートメントを使用します。
CREATE VIEW v_tracks
AS
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;
Code language: SQL (Structured Query Language) (sql)
試してみてください
今後は、上記の複雑なクエリの代わりに、次の単純なクエリを使用できます。
SELECT * FROM v_tracks;
Code language: SQL (Structured Query Language) (sql)
試してみてください
2)カスタム列名を使用したビューの作成
次のステートメントは、v_albums
という名前のビューを作成します アルバムのタイトルとアルバムの長さ(分単位)が含まれています:
CREATE VIEW v_albums (
AlbumTitle,
Minutes
)
AS
SELECT albums.title,
SUM(milliseconds) / 60000
FROM tracks
INNER JOIN
albums USING (
AlbumId
)
GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)
この例では、ビューAlbumTitle
に新しい列を指定しました albums.title
の場合 式SUM(milliseconds) / 60000
の列と分
このクエリは、v_albums
からデータを返します ビュー:
SELECT * FROM v_albums;
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、データベースビューと、CREATE VIEW
の使用方法について学習しました。 SQLiteで新しいビューを作成するステートメント。