以下に、BTEQを使用してビューを作成する手順を示します。
- BTEQを使用してユーザーDBADMINでTeradata Vantageにログインします。
- CREATE VIEW文で1つ以上のビューを作成します。例:
CREATE VIEW database_name.view_name (column_name, column_name) AS SELECT clause;
説明:
構文要素 説明 database_name ビューが作成されるデータベースが現在のデータベースではない場合の作成先のデータベースの名前。 推奨事項:データベースは、ビュー データベースであるか、またはビュー データベース内にあるデータベースであることが必要です。データベース作成についてを参照してください。
database_nameが指定されないと、システムはビューを現行セッションのデフォルト データベース内に作成します。
view_name 作成されるビューの名前。 column_name ビュー列の名前を指定します。複数の列を指定する場合には、各列がビュー用に表示される順序で、名前を列挙します。 LOCKING clause 指定されたロックは基になる基本テーブルに置かれ、SQL文でビューが参照されるたびに設定されます。 推奨事項: LOCKING FOR ACCESS修飾子によりビューを作成し、データの同時並行アクセスを読み取り専用ユーザーとデータを修正するユーザーに許可します。これによりデッドロックを回避し、パフォーマンスを高めます。
ACCESSロックは、ユーザー リクエストの分離を削減するために使用できるツールで、そのリクエストがコミットされていない有効な変更対象のデータにアクセスできるようにします。
これにより、データの広範囲の統計的スナップショットに関心がありながら厳密な結果を必要としないユーザーが、変更が行なわれているデータにアクセスできるようになります。このようなユーザーは必要がなければ書き込み操作が完了するのを待たないので、パフォーマンスを大幅に向上できます。
SELECT clause ビューのデータを取得するSELECT文。以下のオプションと句を使用できます。 DISTINCTオプション SELECTの結果で重複行の任意の集合から1行のみを返します。
ALLオプション SELECTの結果の重複行を含む、すべての行を返します。これは、デフォルトです。
SELECT clause TOP nまたはTOP m PERCENTオプション[WITH TIES] 基になる基本テーブルで、ビューをn行または行のmパーセントに制限します。ORDER BY句を指定しない場合、TOP n句は、TOP nではなく任意のn基本テーブル行が返されることのみを指定します。
このオプションは、テーブルの行の制限された非統計的なランダムサンプルを迅速に取得する方法になります。
FROM句 基本テーブルまたはビューの集合を指定し、そこからビューのデータを選択します。
WHERE句 条件式を指定し、それによりビューの行を選択します。
GROUP BY句 1つまたは複数の列、あるいは指定された列式に対するさまざまな拡張したGROUP BY演算により、結果行をグループ分けします。
HAVING句 条件式を指定し、それによりGROUP BY句で定義されたグループを選択します。
QUALIFY句 条件付きの順序付き分析関数を指定し、ビューの行を選択します。
WITH CHECK OPTION句 INSERTまたはUPDATE文に影響される可能性があるテーブルの行をWHERE句により定義される行に制限する、保全制約オプション。このオプションは、更新可能なビューのみに関連します。
推奨事項: データ行の不正な変更を防ぐために、すべての更新可能なビュー定義でWITH CHECK OPTION句を指定します。
ORDER BY句 結果行がソートされる順序を指定します。ビュー定義にORDER BY句を指定できるのは、同時にTOP nまたはTOP m PERCENTオプションも指定した場合だけです。
例には、ビュー作成の主なオプションが示されています。REPLACE VIEW文を使用して、ビュー定義を変更できます。BTEQスクリプトを使用してビューの作成を自動化する場合は、BTEQスクリプトによるデータベース オブジェクトの作成を参照してください。 - 以下のようにビューに権限を設定します。
- 通常のユーザーの読み取り専用アクセスを可能にして、それらのユーザーがビューを使用してデータの問合わせを実行できるようにします。
- 権限を持つユーザーの書き込みアクセスを可能にして、それらのユーザーがビューを使用することで基になるテーブルのデータを更新できるようにします。