素人の備忘録なので、あまりよく解っていませんが、ビューの作り方です。
なんでViewを作る必要があるのかすら不明です。知ってる人は逆にコメント欲しいです。
思っていることは、論理ファイルは容量を食うので作るとか、物理ファイル名をそのままSQLに組み込んでしまうと、そのファイル名が洩れた時に変えられないという話とか。そもそも論理ファイルよりも高性能だとか。
Viewの作り方
CREATE VIEW スキーマ名.テーブル名 AS SQL文;
こんな感じ。
具体的には下記のような文。
CREATE VIEW ALLLIB.ZAIKO AS SELECT * FROM TOKYO.ZAIKO UNION SELECT * FROM OSAKA.ZAIKO UNION SELECT * FROM FUKUOKA.ZAIKO UNION SELECT * FROM NAGOYA.ZAIKO ;
全店の在庫をALLでまとめるSQL。
意味は、
CREATE VIEW=ビューを作る
AS=~で定義する
もちろんまとめるSQL文は自由。UNIONでもJOINでも何でもいいはず。
Viewの一覧表示
これもSQLで表示する。大元のSQLはSELECT * FROM SYSIBM.TABLES;
select * from sysibm.views;
出力結果はこんな感じ。お見せできないが、確かにCREATE VIEWしたものが表示されている。
VIEW_DEFINITIONがSQL文になる。
TABLE_SCHEMAがスキーマ名。
TABLE_NAMEがテーブル名。
スキーマ名とテーブル名はさきほどCREATE VIEWの直後に指定した文字列だ。
他のDBMSはよく解らないが、AS400に関してはスキーマ名.テーブル名のように指定する必要があるみたい。
上のリストを見ればちゃんと分かれているからそれが証拠。
他にもたくさんのViewがあるが、自分が作っていないものもある。システムが作っているのでしょう。
Viewを削除する
削除はDROPを使う。
DROP VIEW ALLLIB.ZAIKO;
再度 SELECT * FROM SYSIBM.VIEWS;で調べると確かに消えている。
だからSYSIBM.VIEWSで把握できることがハッキリした。
Viewを使う
使い方は色々。スキーマ名.ファイル名で指定すれば使えるので、ライブラリリストにスキーマ名があれば、RPGでも使えるのかも。
試して確実に使えるのは、PHPで使えたのと、WebQUERYで使えた。
コメント