SQLiteのビュー
【開発環境】
OS:Win10(64ビット)
データベース:SQLite3
コマンドプロンプト入力
【ビューとは】
ビュー→SELECT文などによってテーブルの一部のカラムのデータを閲覧したい場合に、再利用しやすいように名前をつけたものです。
書式
CREATE VIEW ビュー名 AS SELECT文;
実行
Microsoft Windows [Version 10.0.18363.900]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\shyok>cd D:\pg\sqlite3
C:\Users\shyok>d:
D:\pg\sqlite3>sqlite3 D:\pg\sqlite3\myfriend.sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite>
sqlite> .tables
Tuser numtest1 personal product staff user
sqlite> drop table user;
sqlite> create table user(id integer, name text, address text, old integer);
sqlite>
sqlite> insert into user values(1, 'Honda', 'Tokyo', 23);
sqlite> insert into user values(2, 'Tani', 'Tokyo', 19);
sqlite> insert into user values(3, 'Furuta', 'Osaka', 38);
sqlite> insert into user values(4, 'Suzuki', 'Tokyo', 24);
sqlite> insert into user values(5, 'Yamada', 'Fukuoka', 18);
sqlite>
sqlite> .heade on
sqlite> .mode column
sqlite>
sqlite>
sqlite> select * from user;
id name address old
---------- ---------- ---------- ----------
1 Honda Tokyo 23
2 Tani Tokyo 19
3 Furuta Osaka 38
4 Suzuki Tokyo 24
5 Yamada Fukuoka 18
sqlite>
ビュー「tokyouser」を作成する。addressが Tokyoのみ
sqlite> create view tokyouser as select id, name from user where address = 'Tokyo';
sqlite>
データ表示
sqlite> select * from tokyouser;
id name
---------- ----------
1 Honda
2 Tani
4 Suzuki
sqlite>
つまり、下記と同じ
sqlite> select id, name from user where address = 'Tokyo';
id name
---------- ----------
1 Honda
2 Tani
4 Suzuki
sqlite>
データを追加して、ビューを見る
sqlite> insert into user values(6, 'Ogi', 'Tokyo', 17);
sqlite> select * from tokyouser;
id name
---------- ----------
1 Honda
2 Tani
4 Suzuki
6 Ogi
sqlite>
【ビューへのデータ追加やビューからのデータ削除】
ビューからデータを取得することはできますが、ビューに対してデータの追加や削除、データの更新といった処理を行うことはできません。
sqlite> insert into tokyouser values(8, 'Nagakura');
Error: cannot modify tokyouser because it is a view
sqlite>
【作成済のビュー一覧を表示する】
sqlite> .tables
Tuser numtest1 personal product staff tokyouser user
sqlite>
※コメント投稿者のブログIDはブログ作成者のみに通知されます