Rumah >pangkalan data >tutorial mysql >apakah pandangan mysql

apakah pandangan mysql

藏色散人
藏色散人asal
2023-04-04 10:39:044182semak imbas

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.

apakah pandangan mysql

Persekitaran pengendalian tutorial ini: sistem Windows 10, Versi MySQL5.7, komputer Dell G3.

Apakah pandangan MySQL? Lihat makna dan analisis penggunaan

Apakah itu pandangan

  • Paparan ialah jadual maya yang kandungannya ditakrifkan oleh pertanyaan? .
  • Seperti jadual sebenar, paparan mengandungi satu siri data lajur dan baris yang dinamakan.
  • Data baris dan lajur datang daripada jadual yang dirujuk oleh pertanyaan paparan tersuai dan dijana secara dinamik apabila paparan dirujuk.
  • Ringkasnya, paparan ialah jadual yang terdiri daripada hasil pilihan.

Sebagai contoh
Gunakan arahan jadual pertanyaan

SELECT * FROM 表名 ;

untuk mengetahui anda boleh melihat jadual, dan apa yang anda lihat dipanggil pandangan .

Ciri-ciri paparan

  • Pandangan ialah rujukan kepada beberapa jadual asas, jadual maya dan hasil pelaksanaan pernyataan pertanyaan .
  • Ia tidak menyimpan data khusus (jika data jadual asas berubah, paparan juga akan berubah dengan sewajarnya).
  • Ia boleh melakukan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan sama seperti jadual asas (operasi penambahan, pemadaman dan pengubahsuaian tertakluk pada sekatan bersyarat).

Peranan pandangan

  • Meningkatkan keselamatan: Buat paparan dan tentukan data yang paparan itu beroperasi. Kemudian ikat kebenaran pengguna pada paparan. Kaedah ini menggunakan ciri: penyata pemberian boleh memberikan kebenaran kepada paparan.
    Contohnya: data yang ditanya oleh pentadbir mengandungi kata laluan setiap pengguna, dan pentadbir tidak mahu pengguna melihat kata laluan, dia boleh membuat paparan supaya hanya pengguna boleh melihat pentadbir. Data yang anda mahu dia lihat
  • meningkatkan prestasi pertanyaan.
  • Kebebasan data dipertingkat.

Buat Paparan

Andaikan kita mempunyai jadual pelajar seperti berikut
apakah pandangan mysql

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 buatapakah pandangan mysql
Kandungan dalam jadual adalah kandungan yang diperlukanapakah pandangan mysql
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.

Ubah suai paparan

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 );

Padam Paparan

DROP VIEW 视图名称;

Lihat Mekanisme

Penggantian

Apabila mengendalikan paparan, nama paparan diganti terus dengan definisi paparan

Reifikasi

mysq|Pertama memperoleh hasil pelaksanaan paparan, yang membentuk hasil perantaraan dan disimpan sementara dalam ingatan.
Pernyataan pilihan luar memanggil hasil perantaraan ini (jadual sementara)

Perbezaan antara penggantian dan reifikasi

  • Formula penggantian: Kaedah penggantian, selepas menggantikan formula paparan, ia diproses secara keseluruhan persegi|.
  • Spesifikasi : Kaedah spesifikasi, mula-mula memproses hasil paparan, dan kemudian memproses keperluan pertanyaan luaran.

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
apakah pandangan mysql
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);

还有两个需要注意的东西是

  • WITH CHECK OPTION

更新数据时不能插入或更新不符合视图限制条件的记录。
比如上面我们查询了一张年龄大于20的视图,那么在这张视图里面更新数据时如果年龄小于20则会报错。

  • LOCAL和CASCADED

为可选参数,决定了检查测试的范围,默认值为CASCADED

视图不可更新部分

  • 聚合函数
  • DISTINCT关键字
  • GROUP BY子句
  • HAVING子句
  • UNION运算符
  • FROM子句中包含多个表
  • SELECT语句中引用了不可更新视图
  • 只要视图当中的数据不是来自于基表,就不能够直接修改

【相关推荐:mysql视频教程

Atas ialah kandungan terperinci apakah pandangan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah fail mysql.frm?Artikel seterusnya:Apakah fail mysql.frm?