[MYSQLノート]ビューの使用

見る:

テーブルのような選択の結果を保持する仮想テーブルはビューです。

ビューはテーブルではなく、データのレコードや列はビューに保存されません。

ビューは、レコードのクエリに使用される情報の一種です。

ビューの目的:

ユーザーは、希望する条件に応じて、携帯電話の特定のテーブルの特定の列のデータにアクセスできます。

ユーザーの観点からは、ビューとテーブルの使用法に違いはありません。テーブルと同様に、ビューも選択および更新できます。ビューのレコードを更新すると、ベーステーブルのレコードも更新されます。

また、変更できない重要なデータについては、管理者など特別な権限を持つ方にのみ関連テーブルの操作を許可すると同時に、関係のない部分を収集するビューを作成する方が安全です。

さらに、データベースの上級ユーザーは、初心者向けのわかりやすいビューを作成して、ビューの使用法の1つであるわかりにくいテーブルを置き換えることができます。

ビューを定義します。

create view 视图名 as select 列名 from 表名 where 条件;

上記のステートメントは、selectのレコード作成ビューを表しています。

例:従業員情報テーブルtbは、従業員番号(id)、名前(name)、および年齢(age)で構成されます。従業員番号がなく、nameとageの2つの列のみを含むビューv1を作成してみてください。

create view v1 as
select name,age from tb;

ビューを介して列の値を更新します。

ビューには、ベーステーブルの一部のみが表示されます。したがって、ベーステーブルの値が更新されると、ベーステーブルの値を収集して表示するビューの値も更新されます。ただし、ビューの値を更新すると、ベーステーブルの値も更新されます。

例:ビューv1の「a」の名前をjakeに変更します

update v1 set name='jake' where name='a';

ビューを作成するための条件を設定します。

例:販売情報テーブルtb:id、sales、month人事情報テーブルtb1 id、name、age

売上高がtbで100万元以上のレコードを抽出し、ID、売上高、名前で構成されるビューv2を作成します

create view v2 as
select tb.id,tb1.name,tb1.sales
from tb
join tb1
using (id)
where tb.sales>=100;

ビューによって設定された条件が満たされたときに、ベーステーブルが更新されると、ビュー内のレコードも更新されます。条件が設定されたビューには、常に条件に一致するレコードが表示されます。

ビューの確認:

show tables;

存在するビューを確認します。ビューはテーブルと絡み合っています。

desc 视图名;//显示视图的列结构

ビューを介した書き込みを制限します。

ビューでの挿入および更新操作の実行には制限があります。たとえば、union、join、およびsubqueriesを使用するビューでは、挿入と更新を実行できません。ただし、テーブルからサブ列を抽出するだけで、挿入および更新できます。

条件を設定して、ベースグラフの挿入を作成します。

例:売上情報テーブルID、sales、month、売上が100万元以上の場合、売上情報テーブルtbの列IDと列saledのみを含むビューv3を作成します。

create view v3 as
select id,sales
from tb
where sales>=100;

 ビューの基準を満たさないレコードをビューに挿入する場合:

insert into v3 values('a',50);

 結果:

ビューv3には挿入されたレコードは表示されず、ベーステーブルtbにレコードが表示されます。つまり、ビューを介してレコードを挿入する場合、where条件に一致しなくても、データはベーステーブルに直接入力されます。

ただし、条件付きビューの場合、レコードの無条件入力が面倒な場合があります。また、ビューから入力されたレコードがそのビューで確認できないのは面倒です。

これらの状況に対処するために、基準に一致しないレコードを受け入れないようにビューを設定できます。

ビューの作成を使用してビューを作成するときに、チェックオプションを使用して追加できます

create view v4
 as
select id,sales
from tb
where sales>100
  with check option;

条件を満たさないレコードを挿入しようとすると、エラーが発生します。

ビューを置き換える:

create or replace view v1
as 
select..;

またはreplaceは、同じ名前の既存のビューを削除して、新しいビューを作成します。

ビュー構造を変更します。

alter view 视图名 as select 列名 from 表名;

次の操作により、現在のビューv1にテーブルtb1の列と列の経過時間を含めることができます。
 

alter view v1
as select name,age
from tb;

ビューを削除:

drop view 视图名;

 

 

おすすめ

転載: blog.csdn.net/m0_52043808/article/details/124200066