回転:mysql create viewビューを作成する
3835 ワード
以下の文章は主にMySQLビューの説明で、MySQビューLの概要、MySQLビューの作成-create viewとMySQLビュー-alter viewの修正などの内容の具体的な説明が含まれています.以下は文章の具体的な内容の紹介です.
一.ビューの概要
MySQLビューは、クエリによって定義された仮想テーブルです.実際のテーブルと同様に、ビューには名前付きのカラムとローのデータが一連含まれています.ただし、ビューはデータベースに格納されたデータ値セットとして存在しません.行および列データは、定義ビューのクエリーによって参照されるテーブルから取得され、ビューを参照するときに動的に生成されます.
参照されるベース・テーブルでは、MySQLビューの役割はフィルタリングに似ています.ビューを定義するフィルタは、現在のデータベースまたは他のデータベースの1つ以上のテーブル、または他のビューから使用できます.ビューによるクエリーには制限はありません.データの変更にも制限はありません.
ビューは、データベースに格納されたクエリーのsql文です.主に2つの理由から使用されます.セキュリティの理由で、ビューは、社会保険基金表、名前、住所のみを表示し、社会保険番号や給与数を表示しないなどのデータを隠すことができます.もう1つの理由は、複雑なクエリーを理解しやすく使用できるためです.
MySQLビュー:グラフィックまたはドキュメントの表示方法.
ビューは、1つ以上のテーブルまたはビューからエクスポートされたテーブルであり、その構造およびデータは、テーブルに対するクエリーに基づいて構築されます.テーブルと同様に、ビューもいくつかの定義されたデータ列と複数のデータ行を含むが、本質的にはこれらのデータ列とデータ行は参照されたテーブルに由来する.
したがって、MySQLビューは実際に存在するベーステーブルではなく、ダミーテーブルであり、ビューに対応するデータは実際にビュー構造でデータベースに格納されるのではなく、ビューが参照するテーブルに格納されます.
ビューは定義されるとデータベースに格納され、それに対応するデータはテーブルのようにデータベースに格納されず、ビューで表示されるデータは基本テーブルに格納されたデータにすぎません.ビューに対する操作は、テーブルに対する操作と同様に、クエリー、変更(制限あり)、削除を行うことができます.
ビューで見たデータを修正すると、対応する基本テーブルのデータも変化するとともに、基本テーブルのデータが変化すれば、この変化を自動的にビューに反映することもできる.
ビューには、主に次のような利点があります.
POVセット
操作のシンプル化
カスタムデータ
分割データのマージ
セキュリティ
二.MySQLビューの作成——create view構文create[or replace][algorithm={undefined|merge|temptable}]view[db_name.]view_name [(column_list)] as select_statement [with [cascaded | local] check option]
この文でビューを作成できます.[or replace]が指定されている場合は、同じ名前のビューがすでに存在する場合、元のビューが上書きされます.select_statementは、テーブルまたは他のビューからクエリーできるクエリー文です.ビューはデータベースに属するため、データベースの名前を指定する必要があります.指定しない場合は、現在のデータベースに新しいビューを作成します.
テーブルとデータベースは、データベース内の同じ名前空間を共有するため、データベースに同じ名前のテーブルとビューを含めることはできません.また、ビューのカラム名も繰り返すことはできません.使用例 eg.この例では、製品テーブル(product)と購入記録テーブル(purchase)を作成し、MySQLビューpurchase_を使用します.detailは購入の詳細を照会します.
作成に成功したら、「select*from purchase_」と入力します.detail;
実行効果は次のとおりです.
+-------+-------+-----+-------------+| name | price | qty | total_value |+-------+-------+-----+-------------+| apple | 5.5 | 10 | 55 |+-------+-------+-----+-------------+1 row in set (0.01 sec)注意事項 ビューの作成には、次の注意事項があります.
(1)ビューを作成する文を実行するには、ユーザがビューを作成する権限を持つ必要があり、[or replace]を追加すると、ユーザがビューを削除する権限を持つ必要がある.
(2)select文にfrom句のサブクエリを含めることはできません.
(3)select文はシステムまたはユーザー変数を参照できない.
(4)select文は前処理文パラメータを参照できない.
(5)格納サブルーチン内で、サブルーチンパラメータやローカル変数を参照できないことを定義する.
(6)定義で参照されるテーブルまたはビューが存在する必要があります.ただし、MySQLビューを作成すると、参照を定義するテーブルやビューを破棄できます.ビュー定義にこのような問題があるかどうかを確認するには、check table文を使用します.
(7)定義ではtemporaryテーブルを参照できず、temporaryビューを作成できない.
(8)ビュー定義で命名されたテーブルは既に存在しなければならない.
(9)トリガプログラムをビューに関連付けることができない.
(10)ビュー定義でorder byの使用は許可されているが、特定のビューから選択され、そのビューが独自のorder byを持つ文を使用している場合は無視される.
三.MySQLビューの修正——alter view構文alter[algorithm={undefined|merge|temptable}]view view_name [(column_list)] as select_statement[with[cascaded|local]check optionこの文は、既存のビューの定義を変更するために使用されます.その構文はcreate viewと似ています. 使用例 eg.前節で作成した視purchase_detailは修正し、qty列を削除します.文は次のとおりです.
一.ビューの概要
MySQLビューは、クエリによって定義された仮想テーブルです.実際のテーブルと同様に、ビューには名前付きのカラムとローのデータが一連含まれています.ただし、ビューはデータベースに格納されたデータ値セットとして存在しません.行および列データは、定義ビューのクエリーによって参照されるテーブルから取得され、ビューを参照するときに動的に生成されます.
参照されるベース・テーブルでは、MySQLビューの役割はフィルタリングに似ています.ビューを定義するフィルタは、現在のデータベースまたは他のデータベースの1つ以上のテーブル、または他のビューから使用できます.ビューによるクエリーには制限はありません.データの変更にも制限はありません.
ビューは、データベースに格納されたクエリーのsql文です.主に2つの理由から使用されます.セキュリティの理由で、ビューは、社会保険基金表、名前、住所のみを表示し、社会保険番号や給与数を表示しないなどのデータを隠すことができます.もう1つの理由は、複雑なクエリーを理解しやすく使用できるためです.
MySQLビュー:グラフィックまたはドキュメントの表示方法.
ビューは、1つ以上のテーブルまたはビューからエクスポートされたテーブルであり、その構造およびデータは、テーブルに対するクエリーに基づいて構築されます.テーブルと同様に、ビューもいくつかの定義されたデータ列と複数のデータ行を含むが、本質的にはこれらのデータ列とデータ行は参照されたテーブルに由来する.
したがって、MySQLビューは実際に存在するベーステーブルではなく、ダミーテーブルであり、ビューに対応するデータは実際にビュー構造でデータベースに格納されるのではなく、ビューが参照するテーブルに格納されます.
ビューは定義されるとデータベースに格納され、それに対応するデータはテーブルのようにデータベースに格納されず、ビューで表示されるデータは基本テーブルに格納されたデータにすぎません.ビューに対する操作は、テーブルに対する操作と同様に、クエリー、変更(制限あり)、削除を行うことができます.
ビューで見たデータを修正すると、対応する基本テーブルのデータも変化するとともに、基本テーブルのデータが変化すれば、この変化を自動的にビューに反映することもできる.
ビューには、主に次のような利点があります.
POVセット
操作のシンプル化
カスタムデータ
分割データのマージ
セキュリティ
二.MySQLビューの作成——create view
この文でビューを作成できます.[or replace]が指定されている場合は、同じ名前のビューがすでに存在する場合、元のビューが上書きされます.select_statementは、テーブルまたは他のビューからクエリーできるクエリー文です.ビューはデータベースに属するため、データベースの名前を指定する必要があります.指定しない場合は、現在のデータベースに新しいビューを作成します.
テーブルとデータベースは、データベース内の同じ名前空間を共有するため、データベースに同じ名前のテーブルとビューを含めることはできません.また、ビューのカラム名も繰り返すことはできません.
create table product
(
product_id int not null,
name varchar(50) not null,
price double not null
);
insert into product values(1, 'apple ', 5.5);
create table purchase
(
id int not null,
product_id int not null,
qty int not null default 0,
gen_time datetime not null
);
insert into purchase values(1, 1, 10, now());
create view purchase_detail as select product.
name as name, product .price as price, purchase.qty as qty,
product .price * purchase.qty as total_value from product,
purchase where product.product_id = purchase.product_id;
作成に成功したら、「select*from purchase_」と入力します.detail;
実行効果は次のとおりです.
+-------+-------+-----+-------------+| name | price | qty | total_value |+-------+-------+-----+-------------+| apple | 5.5 | 10 | 55 |+-------+-------+-----+-------------+1 row in set (0.01 sec)
(1)ビューを作成する文を実行するには、ユーザがビューを作成する権限を持つ必要があり、[or replace]を追加すると、ユーザがビューを削除する権限を持つ必要がある.
(2)select文にfrom句のサブクエリを含めることはできません.
(3)select文はシステムまたはユーザー変数を参照できない.
(4)select文は前処理文パラメータを参照できない.
(5)格納サブルーチン内で、サブルーチンパラメータやローカル変数を参照できないことを定義する.
(6)定義で参照されるテーブルまたはビューが存在する必要があります.ただし、MySQLビューを作成すると、参照を定義するテーブルやビューを破棄できます.ビュー定義にこのような問題があるかどうかを確認するには、check table文を使用します.
(7)定義ではtemporaryテーブルを参照できず、temporaryビューを作成できない.
(8)ビュー定義で命名されたテーブルは既に存在しなければならない.
(9)トリガプログラムをビューに関連付けることができない.
(10)ビュー定義でorder byの使用は許可されているが、特定のビューから選択され、そのビューが独自のorder byを持つ文を使用している場合は無視される.
三.MySQLビューの修正——alter view
alter view purchase_detail as select product.
name as name, product .price as price, product .
price * purchase.qty as total_value from product,
purchase where product.product_id = purchase.product_id;