Jadual Kandungan
view视图
一、视图定义
二、创建视图
三、视图与表的关系
Rumah pangkalan data tutorial mysql 小贝_mysqlview视图学习_MySQL

小贝_mysqlview视图学习_MySQL

Jun 01, 2016 pm 12:59 PM
pandangan

view视图

简要:
1、视图定义
2、创建视图
3、视图与表的关系
4、视图种类

一、视图定义

视图起因: 查询每个栏目最贵的商品=>

selectgoods_id,goods_name,shop_price from goods order by cat_id asc,shop_price desc; 查询结果,当成一张表看

如果某个查询结果出现的非常频繁,也就是说,拿这个结果进行子查询出现的非常频繁.

createtable g2 like goods;insert into g2 select ….

上面两句,是想保存一个查询结果到表里面,供其它查询用。

视图定义: 视图是由查询结果形成的一张虚拟表。

 

二、创建视图

mysql>CREATE TABLE t (qty INT, price INT);

mysql>INSERT INTO t VALUES(3, 50);

mysql>CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;

mysql>SELECT * FROM v;

 

为什么需要视图?

a、简化查询语句

b、可以控制列权限

把表的权限封闭,但是开放相对应的视图权限。视图里只开放部分列部分数据

c、大数据分表时可以用视图把所分的表形成一张视图

 

三、视图与表的关系

测试时用到的表结构及数据

create table t

(id int primary keyauto_increment,

type tinyint unsigned,

name char(5) not nulldefault '',

money tinyint unsigned

)engine=myisamcharset=utf8;

insert intot(type,name,money) values(1,'1a',4),

(1,'1b',3),(2,'2a',3),(1,'1c',4),(2,'2b',5),(3,'3a',5);

问题1: 视图是表的查询结果,因此表的数据改变了,会影响视图的结果

\

\

修改原始表t的id为6的数据

\

查看视图:

 

\

问题2: 视图改变了呢?

情况一:视图的数据与表的数据一一对应,如上述例子中的表t与视图t_view1

1、修改视图t_view1的id为6的数据

 

\

查看原始表t

\

2、往视图t_view1插入数据

\

查看原始表t

\

3、删除视图t_view1id为7的数据

\

查看原始表t

\

情况2: 视图只是原始表的统计结果,并不与原始表数据一一对应

(备注: 创建统计t表相同type的money字段总和的视图)

\

试着修改下视图t_view2的数据

\

假设可以进行修改,那么type为1的money总和加上3后,怎么对应原始表各个type为1的数据。显然,这是没办法的。因此报错

从上面这两种情况,得到:

1、视图增删改也会影响表,但是,视图并不总能增删改

2、视图的数据与表的数据一一对应时,则可以

3、对于视图insert还应注意,视图必须包含表中没有默认值的列

四、视图的种类

4.1、查看视图创建语法

\

 

针对algorithm的用法:

a、undefined: 由系统默认

b、merge:当algorithm为此值时,创建的视图只是单纯的sql语句存在而不是以虚拟结果表的形式存在。但使用此视图时,创建视图的sql语句会与后面的sql语句进行优化,最后得到一条新的sql语句

以merge视图的方式,求得表t中type相同的money最大值

 

\

再对视图t_view3进行分组

\

显然,这个结果不是我们想要的结果。运行 上述sql语句等同于

\

 

这是因为merge不是以虚拟结果表存在,而仅仅是sql语句,因此会与后面的sql语句进行优化后,再进行执行。

c、temptable:会把视图当做虚拟结果表

以temptable视图的方式,求得表t中type相同的money最大值

\

再进行对type进行分组

\

 

从上面这两种情况,得到:

创建视图建议指定视图的类型为临时表

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mod siap sedia iOS 17 menukarkan iPhone yang sedang mengecas menjadi hab rumah Mod siap sedia iOS 17 menukarkan iPhone yang sedang mengecas menjadi hab rumah Jun 06, 2023 am 08:20 AM

Dalam iOS 17 Apple memperkenalkan Mod Siap Sedia, pengalaman paparan baharu yang direka untuk mengecas iPhone dalam orientasi mendatar. Dalam kedudukan ini, iPhone dapat memaparkan satu siri widget skrin penuh, mengubahnya menjadi hab rumah yang berguna. Mod siap sedia diaktifkan secara automatik pada iPhone yang menjalankan iOS 17 yang diletakkan secara mendatar pada pengecas. Anda boleh melihat maklumat seperti masa, cuaca, kalendar, kawalan muzik, foto dan banyak lagi. Anda boleh leret ke kiri atau kanan melalui pilihan siap sedia yang tersedia dan kemudian tekan lama atau leret ke atas/bawah untuk menyesuaikan. Sebagai contoh, anda boleh memilih daripada paparan analog, paparan digital, fon gelembung dan paparan siang, di mana warna latar belakang berubah berdasarkan masa seiring dengan berlalunya masa. Terdapat beberapa pilihan

Bagaimana untuk melaksanakan jadual boleh diedit dalam Vue Bagaimana untuk melaksanakan jadual boleh diedit dalam Vue Nov 08, 2023 pm 12:51 PM

Jadual adalah komponen penting dalam banyak aplikasi web. Jadual biasanya mempunyai jumlah data yang besar, jadi jadual memerlukan beberapa ciri khusus untuk meningkatkan pengalaman pengguna. Salah satu ciri penting ialah keboleheditan. Dalam artikel ini, kami akan meneroka cara melaksanakan jadual boleh diedit menggunakan Vue.js dan memberikan contoh kod khusus. Langkah 1: Sediakan data Mula-mula, kita perlu menyediakan data untuk jadual. Kita boleh menggunakan objek JSON untuk menyimpan data jadual dan menyimpannya dalam sifat data bagi contoh Vue. Dalam kes ini

Fahami perbezaan dan perbandingan antara SpringBoot dan SpringMVC Fahami perbezaan dan perbandingan antara SpringBoot dan SpringMVC Dec 29, 2023 am 09:20 AM

Bandingkan SpringBoot dan SpringMVC dan fahami perbezaannya Dengan pembangunan Java yang berterusan, rangka kerja Spring telah menjadi pilihan pertama bagi banyak pembangun dan perusahaan. Dalam ekosistem Spring, SpringBoot dan SpringMVC ialah dua komponen yang sangat penting. Walaupun kedua-duanya adalah berdasarkan rangka kerja Spring, terdapat beberapa perbezaan dalam fungsi dan penggunaan. Artikel ini akan menumpukan pada membandingkan SpringBoot dan Spring

Bagaimana untuk menggunakan rangka kerja CodeIgniter4 dalam php? Bagaimana untuk menggunakan rangka kerja CodeIgniter4 dalam php? May 31, 2023 pm 02:51 PM

PHP ialah bahasa pengaturcaraan yang sangat popular, dan CodeIgniter4 ialah rangka kerja PHP yang biasa digunakan. Apabila membangunkan aplikasi web, menggunakan rangka kerja sangat membantu Ia boleh mempercepatkan proses pembangunan, meningkatkan kualiti kod dan mengurangkan kos penyelenggaraan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja CodeIgniter4. Pasang rangka kerja CodeIgniter4 Rangka kerja CodeIgniter4 boleh dimuat turun dari laman web rasmi (https://codeigniter.com/). Bawah

Pembangunan Laravel: Bagaimana untuk menjana pandangan menggunakan Laravel View? Pembangunan Laravel: Bagaimana untuk menjana pandangan menggunakan Laravel View? Jun 14, 2023 pm 03:28 PM

Laravel ialah salah satu rangka kerja PHP yang paling popular pada masa ini, dan keupayaan penjanaan paparan yang berkuasa sangat mengagumkan. Paparan ialah halaman atau elemen visual yang dipaparkan kepada pengguna dalam aplikasi web, yang mengandungi kod seperti HTML, CSS dan JavaScript. LaravelView membenarkan pembangun menggunakan bahasa templat berstruktur untuk membina halaman web dan menjana paparan yang sepadan melalui pengawal dan penghalaan. Dalam artikel ini, kami akan meneroka cara menjana paparan menggunakan LaravelView. 1. Apa

Apakah pandangan dalam Word? Apakah pandangan dalam Word? Mar 19, 2024 pm 06:10 PM

Saya rasa ramai pelajar ingin mempelajari kemahiran menyusun kata, tetapi editor secara rahsia memberitahu anda bahawa sebelum mempelajari kemahiran menyusun huruf, anda perlu memahami pandangan perkataan dengan jelas Dalam Word2007, 5 paparan disediakan untuk dipilih oleh pengguna . Paparan, paparan reka letak membaca, paparan reka letak web, paparan garis besar dan paparan biasa, mari belajar tentang 5 paparan perkataan ini dengan editor hari ini. 1. Paparan halaman Paparan halaman boleh memaparkan rupa hasil cetakan dokumen Word2007, yang terutamanya termasuk pengepala, pengaki, objek grafik, tetapan lajur, jidar halaman dan elemen lain Ia adalah paparan halaman yang paling hampir dengan hasil cetakan. 2. Paparan susun atur membaca Paparan susun atur membaca memaparkan dokumen Word2007 dan Office dalam gaya lajur buku

Penjelasan terperinci tentang pandangan dalam rangka kerja Django Penjelasan terperinci tentang pandangan dalam rangka kerja Django Jun 17, 2023 am 10:18 AM

Django ialah rangka kerja web yang sangat disesuaikan yang menyediakan banyak alatan dan perpustakaan yang mudah untuk membantu pembangun dengan cepat mencipta aplikasi web berprestasi tinggi dan boleh skala. Antaranya, pandangan adalah salah satu komponen terpenting dalam rangka kerja Django. Views bertanggungjawab untuk memproses permintaan daripada pelanggan dan mengembalikan respons yang sepadan. Dalam artikel ini, kami akan menyelami pandangan dalam rangka kerja Django dan menerangkan cara menggunakannya untuk mencipta aplikasi web berprestasi tinggi dan boleh disesuaikan. 1. Konsep asas pandangan dalam Django

Microsoft mengemas kini Kod Visual Studio 1.80 Microsoft mengemas kini Kod Visual Studio 1.80 Jul 10, 2023 pm 08:13 PM

Microsoft baru-baru ini melancarkan Kod Visual Studio 1.80 Walaupun kemas kini ini dikeluarkan pada bulan Julai, pegawai itu masih memanggilnya kemas kini Jun. Selepas pengguna memasang kemas kini ini, terminal terbina dalam boleh terus memaparkan imej, dan fungsi tambahan juga telah dioptimumkan. Dalam versi pratonton Visual Studio Code yang dikeluarkan sebelum ini, sokongan untuk imej dalam terminal telah disokong dan ia didayakan secara lalai dalam versi 1.80 baharu. Untuk dapat memaparkan imej dalam terminal, data piksel imej ditukar kepada teks melalui urutan pelarian khas dan akhirnya ditulis ke terminal. Jika anda ingin menyalurkan fail PNG, GIF atau JPEG biasa ke terminal, anda perlu memasang pakej imgcatpython dan kemudian jalankan imgc dalam terminal

See all articles