<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/create_view.sgml,v 1.5 2001/09/06 10:24:43 i-kaori Exp $
Postgres documentation
-->

<refentry id="SQL-CREATEVIEW">
 <refmeta>
  <refentrytitle id="SQL-CREATEVIEW-TITLE">
   CREATE VIEW
  </refentrytitle>
  <refmiscinfo>SQL<!-- Language Statements -->言語</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   CREATE VIEW
  </refname>
  <refpurpose>
   <!-- Constructs a virtual table -->
   ビュー（仮想テーブル）を作成します。<indexterm><primary>CREATE VIEW</primary></indexterm><indexterm><primary>SQL</primary><secondary>CREATE VIEW</secondary></indexterm><indexterm><primary sortas="びゅー">ビュー</primary><secondary sortas="さくせい">作成</secondary></indexterm>
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>2000-03-25</date>
  </refsynopsisdivinfo>
<synopsis>
CREATE VIEW <replaceable class="PARAMETER">view</replaceable> AS SELECT <replaceable class="PARAMETER">query</replaceable>
</synopsis>

  <refsect2 id="R2-SQL-CREATEVIEW-1">
   <refsect2info> 
    <date>2000-03-25</date>
   </refsect2info>
   <title>
    <!-- Inputs -->入力
   </title>

    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">view</replaceable></term>
      <listitem>
       <para>
	<!-- The name of a view to be created. -->
        作成されるビューの名前です。 

       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable class="parameter">query</replaceable></term>
      <listitem>
       <para>
        <!-- 
	An SQL query which will provide the columns and rows of the view.
        -->
        ビューの列と行を提供するSQL問い合わせです。 

       </para>
       <para>
	<!-- Refer to the SELECT statement for more information
	about valid arguments. -->

        有効な引数に関する情報はSELECT文を参照してください。 


       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>

  <refsect2 id="R2-SQL-CREATEVIEW-2">
   <refsect2info>
    <date>2000-03-25</date>
   </refsect2info>
   <title>
    <!-- Outputs -->出力
   </title>
    <variablelist>
     <varlistentry>
      <term><computeroutput>
CREATE
       </computeroutput></term>
      <listitem>
       <para>
	<!-- The message returned if the view is successfully created. -->
        ビューが正常に作成された場合に返されるメッセージです。 

       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><computeroutput>
ERROR:  Relation '<replaceable class="parameter">view</replaceable>' already exists
       </computeroutput></term>
      <listitem>
       <para>
        <!-- 
	This error occurs if the view specified already exists in the database.
        -->
        指定したビューがすでにデータベースに存在する場合に出力されるエラーです。 

       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><computeroutput>
NOTICE create: attribute named "<replaceable class="parameter">column</replaceable>" has an unknown type
       </computeroutput></term>
      <listitem>
       <para>
        <!-- 
	The view will be created having a column with an unknown type
	if you do not specify it. For example, the following command gives
	a warning: -->

        型を指定をしないと、型の不明な列を持ったビューが作成されます。たとえば以下のコマンドには警告が出されます。
</para>

<programlisting>
CREATE VIEW vista AS SELECT 'Hello World'
</programlisting>

<para>
	<!-- whereas this command does not: -->
        一方、以下のコマンドには警告が出ません。
</para>

<programlisting>
CREATE VIEW vista AS SELECT text 'Hello World'
</programlisting>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>
 </refsynopsisdiv>

 <refsect1 id="R1-SQL-CREATEVIEW-1">
  <refsect1info>
   <date>2000-03-25</date>
  </refsect1info>
  <title>
   <!-- Description -->説明
  </title>
  <para>
   <!-- 
   <command>CREATE VIEW</command> will define a view of a table.
   This view is not physically materialized. Specifically, a query
   rewrite retrieve rule is automatically generated to support
   retrieve operations on views. -->

   <command>CREATE VIEW</command>は、テーブルのビューを定義します。このビューは物理的な実態として存在するものではありません。ビューに対する抽出操作をサポートするような、問い合わせを書き換える特殊な抽出ルールが自動的に生成されます。

  </para>

  <refsect2 id="R2-SQL-CREATEVIEW-3">
   <refsect2info>
    <date>2000-03-25</date>
   </refsect2info>
   <title>
    <!-- Notes -->注釈
   </title>

   <para>
    <!-- Currently, views are read only. -->
    現在のところビューは読み取り専用です。
   </para>

   <para>
    <!-- 
    Use the <command>DROP VIEW</command> statement to drop views. -->

    ビューを削除するためには<command>DROP VIEW</command>文を使います。

   </para>
  </refsect2>
 </refsect1>

 <refsect1 id="R1-SQL-CREATEVIEW-2">
  <title>
   <!-- Usage -->使用方法
  </title>
  <para>
   <!-- 
   Create a view consisting of all Comedy films: -->

   下記はすべての娯楽映画（Comedy films）のビューを作成します。
</para>

<programlisting>
CREATE VIEW kinds AS
    SELECT *
    FROM films
    WHERE kind = 'Comedy';

SELECT * FROM kinds;

 code  |           title           | did | date_prod  |  kind  | len
-------+---------------------------+-----+------------+--------+-------
 UA502 | Bananas                   | 105 | 1971-07-13 | Comedy | 01:22
 C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36
(2 rows)
</programlisting>
 </refsect1>
 
 <refsect1 id="R1-SQL-CREATEVIEW-3">
  <title>
   <!-- Compatibility -->互換性
  </title>
  
  <refsect2 id="R2-SQL-CREATEVIEW-5">
   <refsect2info>
    <date>2000-03-25</date>
   </refsect2info>
   <title>
    SQL92
   </title>
   <para>
    <!-- SQL92 specifies some additional capabilities for the
    <command>CREATE VIEW</command> statement: -->

    SQL92は<command>CREATE VIEW</command>文に対しいくつかの追加機能を規定しています。 

   </para>
<synopsis>
CREATE VIEW <replaceable class="parameter">view</replaceable> [ <replaceable class="parameter">column</replaceable> [, ...] ]
    AS SELECT <replaceable class="parameter">expression</replaceable> [ AS <replaceable class="parameter">colname</replaceable> ] [, ...]
    FROM <replaceable class="parameter">table</replaceable> [ WHERE <replaceable class="parameter">condition</replaceable> ]
    [ WITH [ CASCADE | LOCAL ] CHECK OPTION ]
</synopsis>

   <para>
    <!-- The optional clauses for the full SQL92 command are: -->
    すべてのSQL92コマンドのオプション句は以下のとおりです。 
</para>

   <variablelist>
     <varlistentry>
      <term>CHECK OPTION</term>
      <listitem>
       <para>
	<!-- This option is to do with updatable views.
	All INSERTs and UPDATEs on the view will be
	checked to ensure data satisfy the view-defining
	condition. If they do not, the update will be rejected. -->

        このオプションは更新可能なビューに関係します。ビューに対するすべてのINSERTとUPDATEは、ビュー定義の条件を満足しているかどうかチェックされます。条件を満たしていない場合、その更新は拒否されます。

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>LOCAL</term>
      <listitem>
       <para>
	<!-- Check for integrity on this view. -->
        このビューの整合性をチェックします。 

       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>CASCADE</term>
      <listitem>
       <para>
	<!-- Check for integrity on this view and on any dependent
	view. CASCADE is assumed if neither CASCADE nor LOCAL is specified.
        -->

       このビューと依存しているすべてのビューの整合性をチェックします。CASCADEまたはLOCALのいずれも指定されていない場合はCASCADEが指定されたものと仮定されます。

       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->
