CREATE VIEW

CREATE VIEWとは、ビューを新規作成したり、既存のビューを置換するSQL文である。

Oracle

Oracle Database における CREATE VIEW 文の構文を以下に示す。

CREATE [ OR REPLACE ] [ FORCE ] VIEW [schema.]view AS subquery
OR REPLACE
既存のビューを再作成する。(ALTER VIEW は、ビューを再作成するSQL文ではない)
SQL> CREATE OR REPLACE VIEW example AS SELECT * FROM emp, dept WHERE emp.deptno = dep.deptno;
FORCE
ビューの元となる実表が存在していなかったり、実表を参照する権限が無くても、ビューを作成する。
SQL> CREATE FORCE VIEW example AS SELECT * FROM emp, dept WHERE emp.deptno = dep.deptno;
schema
ビューを作成するスキーマの名前を指定する。自分のスキーマ内にビューを作成する場合は、スキーマの指定を省略できる。
SQL> CREATE VIEW tsuka.example AS SELECT * FROM emp, dept WHERE emp.deptno = dep.deptno;
view
作成するビューの名前を指定する。
subquery
問い合わせ(SELECT文)を指定する

必要な権限

自分のスキーマ内にビューを作成するには、CREATE VIEWシステム権限が必要である。

他のユーザーのスキーマ内にビューを作成するには、CREATE ANY VIEWシステム権限が必要である。

CREATE VIEWの使用例

ビューを新たに作成する。

CREATE VIEW example AS SELECT ename, dname FROM emp, dept WHERE emp.deptno = dept.deptno

既存のビューを置き換える。

CREATE OR REPLACE VIEW example AS SELECT ename, job, dname FROM emp, dept WHERE emp.deptno = dept.deptno

MySQL

MySQL における CREATE VIEW 文の構文を以下に示す。

CREATE
  [OR REPLACE]
  [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
  [DEFINER = user]
  [SQL SECURITY { DEFINER | INVOKER }]
  VIEW view_name [(column_list)]
  AS select_statement
  [WITH [CASCADED | LOCAL] CHECK OPTION]

PostgreSQL

PostgreSQL における CREATE VIEW 文の構文を以下に示す。

CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
  [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
  AS query

SQL Server

SQL Server における CREATE VIEW 文の構文を以下に示す。

CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
  [ WITH  [ ENCRYPTION ]  [ SCHEMABINDING ]  [ VIEW_METADATA ] [ ,...n ] ]
  [ WITH CHECK OPTION ]

関連SQL

参考文献

Oracle (2023) CREATE VIEW ステートメント MySQL 8.0 リファレンスマニュアル