本ページでは、スキーマの作成方法について説明します。
構文
CREATE SCHEMA AUTHORIZATION username schema_element [ ... ];
パラメーター
パラメーター | 説明 |
---|---|
username | 新しいスキーマを所有するユーザーの名前。
スキーマはユーザー名と同じ名前になります。 注
|
schema_element | スキーマ内に作成されるオブジェクトを定義する SQL 文。
CREATE TABLE、CREATE VIEW、および GRANT が CREATE SCHEMA 内の句として受け入れられます。 その他の種類のオブジェクトは、スキーマの作成後に別の文で作成することができます。 |
説明
この CREATE SCHEMA 文のバリエーションは、ユーザー名が所有し、1 つ以上のオブジェクトが入力された新しいスキーマを作成します。 スキーマとオブジェクトの作成は単一のトランザクション内で行われるため、すべてのオブジェクトが作成されるか、スキーマを含めてどれも作成されないかのどちらかです。
スキーマは本質的には名前空間です。 これには、他のスキーマに存在する他のオブジェクトの名前と重複する可能性があるテーブルやビューなどの名前付きオブジェクトが含まれています。 名前付きオブジェクトにアクセスするには、スキーマ名を接頭辞として使用して名前を修飾するか、目的のスキーマを含む検索パスを設定します。 非修飾オブジェクトは現在のスキーマに作成されます。 検索パスの先頭にあるスキーマは、CURRENT_SCHEMA 関数で決定できます。 検索パスの概念と CURRENT_SCHEMA 関数は、Oracle データベースと互換性がありません。
CREATE SCHEMA には、スキーマ内にオブジェクトを作成するためのサブ文が含まれています。 サブ文は、基本的にスキーマの作成後に発行される個別の文と同じように扱われます。 作成されたすべてのオブジェクトは、指定されたユーザーが所有します。
例
CREATE SCHEMA AUTHORIZATION enterprisedb
CREATE TABLE empjobs (ename VARCHAR2(10), job VARCHAR2(9))
CREATE VIEW managers AS SELECT ename FROM empjobs WHERE job = 'MANAGER'
GRANT SELECT ON managers TO PUBLIC;