見る:
テーブルのような選択の結果を保持する仮想テーブルはビューです。
ビューはテーブルではなく、データのレコードや列はビューに保存されません。
ビューは、レコードのクエリに使用される情報の一種です。
ビューの目的:
ユーザーは、希望する条件に応じて、携帯電話の特定のテーブルの特定の列のデータにアクセスできます。
ユーザーの観点からは、ビューとテーブルの使用法に違いはありません。テーブルと同様に、ビューも選択および更新できます。ビューのレコードを更新すると、ベーステーブルのレコードも更新されます。
また、変更できない重要なデータについては、管理者など特別な権限を持つ方にのみ関連テーブルの操作を許可すると同時に、関係のない部分を収集するビューを作成する方が安全です。
さらに、データベースの上級ユーザーは、初心者向けのわかりやすいビューを作成して、ビューの使用法の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 视图名;