この投稿では、セキュリティと複雑さの理由からさまざまなアプリケーションで非常に頻繁に使用されるOracleビューについて説明します。Oracleビューの完全なライフサイクル、つまりOracleでビューを作成する方法、Oracleでビューを作成する方法、方法オラクルでビューを変更する、オラクルでビューをコンパイルする方法、オラクルでビューをドロップする方法、オラクルでビューを強制する、オラクルでビューの定義を確認する方法。 。
これと同じものは、SQLビューでもほぼ有効です
Oracleビューとは何ですか?
-Oracleビューは、1つ以上のOracleテーブルまたはビューからのデータの表現です。
-Oracleビューは、名前が付けられ検証されたSQLクエリであり、Oracleデータディクショナリに保存されます。
– ビューにはデータが含まれていません。呼び出されたときに実行できるのは、データベースに保存されているクエリです。表示されるすべてのデータは、ベーステーブルからのものです。ビューは、仮想テーブルまたは1つ以上のデータのマッピングと考えることができます
-ビューは、データディクショナリでのビューの定義以外にストレージスペースを占有しません。
- ビューを使用して、データのサブセットを表す(セキュリティの問題のため)、データのスーパーセットを表す(複数のテーブルを1つのビューに結合する)、複雑な結合を非表示にする、列に意味のある名前を付ける、およびアプリケーションとデータソースの変更を最小限に抑えます。
-参照されるテーブルはベーステーブルと呼ばれます 。
- ビューを作成するには、CREATEVIEWコマンドの後にSQLクエリを使用します。
Oracleのビューの作成例
CREATE VIEW view_name AS SELECT columns FROM tables [WHERE conditions];
-列名は
を使用して指定できますCREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;
-CREATE FORCE VIEWを使用してビューを作成すると、コンパイルエラーのあるビューが作成されます。
-WITHREADONLY句を使用して読み取り専用ビューを作成できます。
-Oracle 9iでは、ビューに制約を作成できます。
-ビューに対する制約は強制されません。宣言型の制約です。制約を適用するには、ベーステーブルに制約を作成する必要があります。ビューに制約を作成するときは、常にDISABLENOVALIDATE句を含める必要があります。
独自のスキーマでビューを作成するには、CREATEVIEWシステム権限が必要です。別のユーザーのスキーマでビューを作成するには、CREATEANYVIEWシステム権限が必要です。
OracleViewsの作成例
View Creation Create view emp_data as select e.empno,e.ename,e.sal,e.deptno,d.dname From emp e, dept d where e.deptno=d.deptno; Create view emp_high_sal as select empno,ename,sal From emp where sal > 100000;
Describe the views Desc Emp_data Desc emp_high_sal Select the data from view Select * from emp_data; select * from emp_high_sal
createまたはreplaceviewコマンドを使用してビューを変更できます。これにより、オブジェクト権限を削除、再作成、および再付与することなく、ビューを変更できます。ビューの変更で列を追加したり、ビューの変更で列を変更したりするようなコマンドはありません。ビューの作成または置換方法を実行する必要があります
Create or replace view emp_high_sal as select empno,ename,sal From emp where sal > 200000;
このコマンドは、ビューが存在しない場合はビューを作成し、存在する場合はビューを変更します。ビューにアクセスしているすべてのplsqlユニットは、ビューの変更後に無効になります
ビューの再コンパイルは、
を使用して行われます。
ALTER VIEW
Alter view emp_high_sal compile;
ビューの削除は、DROPVIEWコマンドを使用して実行されます。
ビューを削除しても、ビューの基になっているベーステーブルには影響しません。ビューを使用してベーステーブルのデータにアクセスしていたユーザーは、ベーステーブルのデータにアクセスできなくなります。
ドロップビューview_name;
Drop view emp_high_sal ;
ビューの定義クエリを実行できない場合でも、CREATEFORCEVIEWコマンドを使用してビューを作成できます。このようなビューは、エラーのあるビューと呼ばれます 。このオプションは、インポート/インストールツールが、基になるオブジェクトが存在する前にビューを作成する場合に役立ちます。
それを理解するために例を見てみましょう。 TESTのようなテーブルはありません。ただし、force Optionを使用してテーブルを作成する前に、ビューを作成することはできます。ビューはコンパイルエラーで作成され、無効のままになります
Create force view TEST_V as select col1,col2,col3 From test where col1 > 1000;として作成します。
次にテーブルを作成します
create table TEST ( col1 number, col2 number, col3 number);
これでビューをコンパイルでき、有効になります
alter view TEST_V compile;
ベーステーブルが削除された場合、ビューはどうなりますか?
基になるテーブルが削除された場合、Oracleはビューを自動的に削除しません。データベースに残り、無効な状態になります。基になるテーブルが再作成されると、それらは再び有効になります
OracleViewデータを表示するためのディクショナリビュー
ビューの詳細は、USER_VIEWS、ALL_VIEWS、またはDBA_VIEWSのいずれかを照会することにより、ディクショナリから照会できます。ビューはセキュリティと情報の隠蔽に役立ちますが、ネストが深すぎると問題が発生する可能性があります。ビューを使用する利点のいくつか:
- SQLステートメントの複雑さを軽減します
- テーブル内の特定の行のみを他のユーザーと共有します
- ベーステーブルの名前と所有者を非表示にします
- ビューには3つのカテゴリがあります
USER_% | このビューには、ユーザーが所有するオブジェクトに関する情報のみが含まれます。例 USER_TABLES、USER_TAB_COLS |
ALL-% | このビューには、ユーザーがデータベース内でアクセスできるオブジェクトに関する情報が含まれています。 例 ALL_TABLES、ALL_TAB_COLS |
DBA_% | このビューには、システム内のすべてのオブジェクトに関する情報が含まれています。これらは、DBAロールを持つユーザーがアクセスできる制限付きビューです。 例 DBA_TABLES |
ビュー情報に関するDBA_%ビュー | ビュー情報に関するALL_%ビュー | ビュー情報に関するUSER_%ビュー | |
更新可能な列 | DBA_UPDATABLE_COLUMNS | ALL_UPDATABLE_COLUMNS | USER_UPDATABLE_COLUMNS |
ビュー情報について表示 | dba_views | all_views | user_views |
To list all views owned by the current user select view_name from user_views; To list all views in a database: Select owner,view_name from dba_views; To list views accessible to the current user: select view_name from all_views; To describe the view in sqlplus desc <view_name>
テーブルDBA_VIEWSのTEXT列を照会します。
Syntax: SQL> set long 10000 SQL> select TEXT 2 FROM DBA_VIEWS 3 where OWNER = '<owner_name>' 4 and VIEW_NAME = '<view_name>';
ディクショナリビューのスタックを経由せずに、Oracleデータベースからビュー定義(DDLステートメント)を抽出する方法
Syntax: SQL> set long 1000 SQL> set pagesize 0 SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL
Oracleビューの詳細な記事が気に入っていただければ幸いです。オラクルでビューを作成する方法、オラクルでビューを作成する例、オラクルでビューを変更する方法、オラクルでビューをコンパイルする方法、オラクルでビューをドロップする方法、オラクルでビューを強制する方法など、ビューでよくある質問に答えようとしました、Oracleでビュー定義を確認する方法
読むべき関連記事
oracleテーブルの作成:テーブルは、Oracleデータベースのデータストレージの基本単位です。 Oracle createtableコマンドを使用して外部キー/プライマリキーを使用してテーブルを作成する方法について説明します
Oracleでの外部テーブル:Oracleでの外部テーブルの使用法については、この投稿を確認してください。外部表の作成、その使用方法
oracleでのシーケンス:oracleでのシーケンスとは、すべてのオプションの説明、それらの作成方法、シーケンスのOracle 12c新機能、それらを削除および変更する方法
オラクルのインデックス:オラクルのインデックス情報、オラクルのさまざまなタイプのインデックス、オラクルのインデックスの作成/ドロップ/変更方法
Oracleマテリアライズド・ビュー:Oracleマテリアライズド・ビュー、Oracleマテリアライズド・ビュー・ログ、グループのリフレッシュ、ビューとマテリアライズド・ビューの違い
マテリアライズド・ビューのリフレッシュの進行状況を監視する方法
oracle alter table modify column type:oraclealtertableを使用してoracleの列を変更する方法に関するこの投稿を確認してください列を変更します。列の変更によりデフォルト値が変更され、nullが許可されない場合があります
Oracleのビューを更新する:この投稿をチェックして、Oracleのビューを更新し、ビューoracleに挿入し、Oracleデータベースのビューから削除します
推奨コース
OracleSQLの優れたUdemyコースは次のとおりです。
Oracle-Sql-ステップバイステップ:このコースでは、基本的なSQL、結合、テーブルの作成とその構造の変更、ビューの作成、ユニオン、ユニオンなどすべてについて説明します。 。 SQL初心者のための素晴らしいコースと必須のコース
完全なOracleSQL認定コース :これは、SQL開発者のスキルに対応できるようになりたい人にとっては良いコースです。わかりやすい説明コース
OracleSQLDeveloper:Essentials、Tips and Tricks :OracleSql開発者ツールは多くの開発者によって使用されています。このコースでは、それを効果的に使用して生産的なSQL開発者になるための秘訣とレッスンを提供します。
Oracle SQL Performance Tuning Masterclass 2020 :パフォーマンスの調整は、重要で最も求められているスキルの1つです。これは、それについて学び、SQLパフォーマンスの調整を開始するための良いコースです