ここではMySQLでビュー(view)を作成する方法を紹介します。
ビューとは
ビューとは、あるテーブルからSELECT文を実行して取得した仮想的な表です。
テーブルは実データを持ちますが、ビューはデータを持ちません。
ビューをSELECTする度に、ビューの定義に書かれたSELECT文が実行され、結果をビューとして実行されます。
複雑な問い合わせや共通的な問合せをビューとして定義しておくと、1つ1つのプログラムで定義しなくても済むというメリットがあります。
ビューを作成するSQL
ビューの作成は、CREATE VIEW文を使います。
ビューの作成にはCREATE VIEW権限とSELECT権限が必要です。
CREATE VIEW文の基本構文
CREATE VIEWの基本構文は次の通りです。
「OR REPLACE」を指定すると、ビューを上書きします。
CREATE [OR REPLACE] VIEW ビュー名
AS SELECT文;
CREATE VIEW文のSQLサンプル
CREATE VIEWのSQLサンプルを紹介します。
次のSQLでは、EMPテーブルからNAME列、AGE列、DEPT_CD列、DEPT_NAME列をVIEWとして参照できるようにしています。
CREATE VIEW v_emp AS
SELECT
a.name
,a.age
,a.dept_cd
,b.dept_name
from
emp a
inner join dept b on a.dept_cd = b.dept_cd
;
ビューを更新するSQL
ビューを更新するときは、ALTER文を使います。
無効なビューの再コンパイルやビューの制約を変更することが出来ます。
ALTER VIEW v_emp AS
SELECT
a.name
,a.age
,a.dept_cd
,b.dept_name
from
emp a
inner join dept b on a.dept_cd = b.dept_cd
;
CREATE文で[OR REPLACE]を指定し実行することで、ビューを更新する方法もあります。
CREATE OR REPLACE VIEW v_emp AS
SELECT
a.name
,a.age
,a.dept_cd
,b.dept_name
from
emp a
inner join dept b on a.dept_cd = b.dept_cd
;
ビューを削除するSQL
ビューを削除するときはDROP文を使います。
DROP VIEW v_emp;
まとめ
ビューの作成はCREATE VIEW文、変更はALTER文もしくは[OR REPLACE]を指定して再定義、削除はDROP文で行います。