mysqlのview(仮想テーブル)
2086 ワード
ビューは、1つ以上のテーブル/ビューから導出された仮想テーブルです.mysqlは更新可能なビューをサポートします.
1作成
注意:a同じデータベースでは、ビューとテーブルが同じnamespaceを持つため、同じ名前を持つことはできません.b select文にサブクエリを含めることはできませんc select文にはシステム変数とユーザーカスタム変数dを含めることはできません.ストレージ・プロシージャ、関数、タイマなどがあれば、select文には彼らのパラメータe selectにprepared文を持つことができないパラメータfが作成されたときに関連付けられたテーブルとカラムが存在しなければなりません.その後、一部のテーブルまたはカラムが削除された場合、このビューを使用するとg作成時に一時テーブルに関与しないことが報告されます.「一時ビュー」hを作成してトリガを関連付けることもできません.だからinformation_schemaとperformance_schemaのテーブルはトリガに関連付けられません.i select文の別名は、一般的な別名の最大長(256文字)ではなく、列の最大長(64文字)を超えてはいけません.j作成時にselectにorder by文を追加できますが、order by文を含むビューから選択した列の場合、追加したorder by文は自動的に無視されます.例:
2表示
3修正
4更新
ビューは仮想テーブルで、データはありません.ビューにデータを追加、変更、削除することは、実際には元のテーブルで行われます.したがって、ビューはパフォーマンスにあまり影響しません.しかし、場合によっては、ビューは更新できない:aは集約関数b distinct c group by d having e unionまたはunion all fを含むサブクエリgはjoinなどの文(連表クエリ)hを含む他の更新不可能ビューiは、テーブル情報を含まないパラメータj ALGORITHM=TEMPTABLEがテーブルの行を複数回参照する
5削除
転載先:https://www.cnblogs.com/noway-neway/p/5218791.html
1作成
CREATE
[OR REPLACE] ## , , create, , alter
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
注意:a同じデータベースでは、ビューとテーブルが同じnamespaceを持つため、同じ名前を持つことはできません.b select文にサブクエリを含めることはできませんc select文にはシステム変数とユーザーカスタム変数dを含めることはできません.ストレージ・プロシージャ、関数、タイマなどがあれば、select文には彼らのパラメータe selectにprepared文を持つことができないパラメータfが作成されたときに関連付けられたテーブルとカラムが存在しなければなりません.その後、一部のテーブルまたはカラムが削除された場合、このビューを使用するとg作成時に一時テーブルに関与しないことが報告されます.「一時ビュー」hを作成してトリガを関連付けることもできません.だからinformation_schemaとperformance_schemaのテーブルはトリガに関連付けられません.i select文の別名は、一般的な別名の最大長(256文字)ではなく、列の最大長(64文字)を超えてはいけません.j作成時にselectにorder by文を追加できますが、order by文を含むビューから選択した列の場合、追加したorder by文は自動的に無視されます.例:
CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
2表示
DESCRIBE ;
:
SHOW TABLE STATUS LIKE ' ';
:
SHOW CREATE VIEW ;
:
SELECT * FROM information_schema.views;
3修正
create or replace ( 1 )
alter :
ALTER
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
4更新
ビューは仮想テーブルで、データはありません.ビューにデータを追加、変更、削除することは、実際には元のテーブルで行われます.したがって、ビューはパフォーマンスにあまり影響しません.しかし、場合によっては、ビューは更新できない:aは集約関数b distinct c group by d having e unionまたはunion all fを含むサブクエリgはjoinなどの文(連表クエリ)hを含む他の更新不可能ビューiは、テーブル情報を含まないパラメータj ALGORITHM=TEMPTABLEがテーブルの行を複数回参照する
5削除
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]
転載先:https://www.cnblogs.com/noway-neway/p/5218791.html