1.表示:
1.ビューとは:データベースにはさまざまなオブジェクトが含まれています。テーブルとビューはデータベース内のランダムな考え方です。ビューは仮想テーブルとして理解できます。ビューは基本的にSQLクエリステートメントを置き換えます。
ビューを使用する理由:一部のデータクエリでは大量のSQLステートメントを書き込む必要があるため、毎回書き込むのは面倒です。ビューを使用することは、大量のSQLステートメントを保存することと同じです。次回、ビューからクエリを実行するときは、大量のSQLステートメントを作成することはありません。これにより開発効率が向上し、機密フィールドを非表示にすることもできます。
表示形式:create view 视图名 as (子查询);
2.ビューとテーブルの比較:
1)サブクエリの結果を新しいテーブル(テーブル)に保存します(これは、データの2つのコピーを保存するのと同じです)元のデータが削除された後、新しいtable_emp_10のデータはまだ存在します。
create table table_emp_10 as(select * from emp where deptno = 10);
2)ビューはSQLステートメントを保存するだけです。ビューが実行されるたびに、保存されたSQLステートメントを実行することと同じです。データのコピーは1つだけで、新しいデータは保存されません。元のデータが削除されると、ビューのデータは消えます。
create view view_emp_10 as(select * from emp where deptno=10);
3.ビューの分類:
1)シンプルビュー:ビューを作成するときに、重複排除、グループ化、関数、および関連クエリを含まないビューをシンプルビューと呼びます。シンプルビューは、ビューのデータを追加、削除、変更、および確認できます(元のテーブルのデータは変更されます) );
2)複雑なビュー:単純なビューとは異なり、実行できるのはクエリ操作のみです。
4.データ汚染:ビューには表示されないが元のテーブルには表示されるデータの一部をビューに挿入することをデータ汚染と呼びます。
例:ビューを作成します。
create view v_emp_10 as (select * from emp where deptno = 10);
データを挿入:
insert into v_emp_10(empno,ename,deptno)values(10011,'小张','10');
データの挿入:データ汚染
insert into v_emp_10(empno,ename,deptno)values(10011,'小李','20');
解決策:with check optionキーワードを使用して、データ汚染の問題を解決します。
テスト:チェックオプションあり
create view v_emp_20 as(select ename,name from emp where deptno = 20) with check option;
insert into v_emp_20(empno,ename,deptno)values(10013,'刘备',20);//成功
insert into v_emp_20(empno,ename,deptno)values(10013,'张飞',30);//(数据污染)失败
5.削除および変更:ビューに存在するデータのみを操作できます。
6.エイリアス:ビューの作成時にエイリアスが使用される場合、ビューの操作時に使用できるのはエイリアスのみです。
2.概要を表示:
- データベース内のオブジェクトは、基本的にSQLステートメントである仮想テーブルとして理解できます。
- 役割:SQLを再利用し、機密フィールドを非表示にします。
- 分類:単純なビューと複雑なビュー。
- チェックオプションでデータ汚染の問題を解決します。
- ビューに存在するデータのみを削除して変更します。
- エイリアスがある場合は、エイリアスしか使用できません。