Mysqlビュー[概要]

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.概要を表示:

  1. データベース内のオブジェクトは、基本的にSQLステートメントである仮想テーブルとして理解できます。
  2. 役割:SQLを再利用し、機密フィールドを非表示にします。
  3. 分類:単純なビューと複雑なビュー。
  4. チェックオプションでデータ汚染の問題を解決します。
  5. ビューに存在するデータのみを削除して変更します。
  6. エイリアスがある場合は、エイリアスしか使用できません。

おすすめ

転載: blog.csdn.net/weixin_44296929/article/details/108662048