ホームページ >データベース >mysql チュートリアル >mysqlビューとは何ですか
MySQL ビューは、その内容がクエリによって定義される仮想テーブルです。ビューには、一連の名前付きの列と行のデータが含まれており、行と列のデータは、ビューをカスタマイズするクエリによって参照されるテーブルから取得されます。動的に生成される参照ビューでは、簡単に言えば、ビューは選択結果で構成されるテーブルです。
例としてクエリ テーブル コマンドを使用します。
SELECT * FROM 表名 ;これが分かれば、テーブルが表示され、表示されたものが と呼ばれます。景色。
要件: ビューを作成し、20 歳以上の学生にクエリを実行します
CREATE VIEW stu_age_view AS(SELECT * FROM stu WHERE age>20);ビューをクリックして開くと、作成したばかりのテーブルが表示されます テーブルの内容は次のとおりです。要件のコンテンツ
ビューに基づいて、21 歳以上の ls という名前の人々をクエリするなど、必要なコンテンツのクエリを続行できます。ビューベースのクエリにより、効率が向上し、運用コストが削減されます。
CREATE OR REPLACE VIEW 视图名 AS(SELECT [...] FROM [...] );例: 上で作成したビュー「stu_age_view」は 20 歳以上の学生向けですが、現在は次のように変更されています。全生徒 。
CREATE OR REPLACE VIEW stu_age_view AS(SELECT * FROM stu );
DROP VIEW 视图名称;#ビューのメカニズム
mysq |ビューの実行結果が最初に取得され、その結果は中間結果を形成してメモリに一時的に保存されます。
#置換と具体性の違い
次に、このビューを確認してみましょうSELECT * FROM stu_age_view ;
これが replacement
の場合、その内部動作ロジックは
です
SELECT * FROM (SELECT *FROM stu WHERE age >20) tihuan;
直接将stu_age_view
的代码替换出来;
如果是具化式,那么它就是先把符合条件的查询出来放在一张表(内存)里,然后直接查询这张表。
(SELECT * FROM stu WHERE age >20) AS TEMPTABLE;SELECT * FROM TEMPTABLE;
上面这两条语句无法运行,只是为了方便举例提出。
那么我们再说回创建视图
ALGORITHM参数(三个)
merge | TEMPTABLE | UNDEFINED |
---|---|---|
处理方式替换式,可以进行更新真实表中的数据 | 具化式,由于数据存储在临时表中,所以不可以进行更新操作 | 没有定义ALGORITHM参数,mysq更倾向于选择替换方式,因为它更加有效。 |
用参数创建视图
CREATE ALGORITHM = MERGE VIEW stu_age_viewAS(SELECT * FROM stu WHERE age >20);
还有两个需要注意的东西是
更新数据时不能插入或更新不符合视图限制条件的记录。
比如上面我们查询了一张年龄大于20的视图,那么在这张视图里面更新数据时如果年龄小于20则会报错。
为可选参数,决定了检查测试的范围,默认值为CASCADED
【相关推荐:mysql视频教程】
以上がmysqlビューとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。