Rumah > Artikel > pangkalan data > apakah pandangan mysql
Paparan MySQL ialah jadual maya yang kandungannya ditakrifkan oleh pertanyaan yang mengandungi satu siri data lajur dan baris yang dinamakan, dan data baris dan lajur berasal daripada jadual yang dirujuk oleh pertanyaan yang menyesuaikan paparan; , dan dirujuk dalam paparan Dijana secara dinamik, secara ringkasnya, paparan ialah jadual yang terdiri daripada hasil pilihan.
Persekitaran pengendalian tutorial ini: sistem Windows 10, Versi MySQL5.7, komputer Dell G3.
Apakah pandangan MySQL? Lihat makna dan analisis penggunaan
Sebagai contoh
Gunakan arahan jadual pertanyaan
SELECT * FROM 表名 ;
untuk mengetahui anda boleh melihat jadual, dan apa yang anda lihat dipanggil pandangan .
Andaikan kita mempunyai jadual pelajar seperti berikut
Keperluan: Buat paparan dan tanya pelajar yang berumur lebih daripada 20 tahun
CREATE VIEW stu_age_view AS(SELECT * FROM stu WHERE age>20);
Klik paparan untuk membuka dan anda boleh melihat jadual yang baru anda buat
Kandungan dalam jadual adalah kandungan yang diperlukan
Berdasarkan paparan, kami boleh terus menanyakan kandungan yang diingini, seperti menanya orang bernama ls yang berumur lebih daripada 21 tahun boleh meningkatkan kecekapan dan mengurangkan kos operasi.
CREATE OR REPLACE VIEW 视图名 AS(SELECT [...] FROM [...] );
Contohnya: paparan "stu_age_view" yang dibuat di atas adalah untuk pelajar berumur 20 tahun ke atas, sekarang ia diubah suai kepada Semua pelajar.
CREATE OR REPLACE VIEW stu_age_view AS(SELECT * FROM stu );
DROP VIEW 视图名称;
Apabila mengendalikan paparan, nama paparan diganti terus dengan definisi paparan
mysq|Pertama memperoleh hasil pelaksanaan paparan, yang membentuk hasil perantaraan dan disimpan sementara dalam ingatan.
Pernyataan pilihan luar memanggil hasil perantaraan ini (jadual sementara)
Mari kita berikan contoh untuk mendalami pemahaman kita
Semasa membuat paparan di atas, kami telah mencipta pandangan yang memerlukan pelajar berumur lebih daripada 20 tahun
Kemudian mari kita lihat pandangan ini
SELECT * FROM stu_age_view ;
Jika ia adalah penggantian , maka logik operasi dalamannya ialah
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视频教程】
Atas ialah kandungan terperinci apakah pandangan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!