mysql基礎之視圖

來源:互聯網
上載者:User

標籤:style   blog   http   color   ar   sp   資料   on   art   

原文: mysql基礎之視圖

在查詢中,我們經常把查詢結果 當成暫存資料表來看.

View是什麼? View可以看一張虛擬表. 是表通過某種運算得到的一個投影.

既然視圖只是表的某種查詢的投影,所以主要步驟在於查詢表上.查詢的結果命名為視圖就可以了.

視圖與表的關係

視圖是表的查詢結果,自然表的資料改變了,影響視圖的結果.

 

視圖改變了呢?

0: 視圖增刪改也會影響表

1: 但是,視圖並是總是能增刪改的.

 

視圖某種情況下,是可以修改的.

要求: 視圖的資料和表的資料 11對應. 就像函數的映射.

表-->推出視圖對應的資料

視圖-->推出表對應的資料


視圖的定義:

視圖是由查詢結果形成的一張虛擬表.是sql查詢結果

 

視圖的建立文法:

Create view 視圖名 as  select 語句;

 

視圖的刪除文法:

Drop view 視圖名

 

視圖的修改

Alter view 視圖名 as select xxxxxx

 

 

為什麼要視圖?

答:1:可以簡化查詢

 

2: 可以進行許可權控制

把表的許可權封閉,但是開放相應的視圖許可權,視圖裡只開放部分資料

 

3: 大資料分表時可以用到

比如,表的行數超過200萬行時,就會變慢,

可以把一張的表的資料拆成4張表來存放. 


視圖的algorithm

Algorithm = merge/ temptable/ undefined

Merge: 當引用視圖時,引用視圖的語句與定義視圖的語句合并.

Temptable:當引用視圖時,根據視圖的建立語句建立一個暫存資料表

Undefined:未定義,自動,讓系統幫你選.

 

Merge,意味著視圖只是一個規則,語句規則, 當查詢檢視時,

把查詢檢視的語句(比如where那些)與建立時的語句where子句等合并,分析.

形成一條select 語句.

例: 建立視圖的語句:

mysql> create view g2 as select goods_id,cat_id,goods_name,shop_price from goods where shop_price>2000

查詢檢視的語句:

select * from g2  where shop_price < 3000;

 

最終執行的語句:

select goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000 and shop_price < 3000

 

而temptable是根據建立語句瞬間建立一張暫存資料表,

然後查詢檢視的語句從該暫存資料表查資料.

create algorethm=temptable view g2 as select goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000

查詢檢視的語句:

 select * from g2  where shop_price < 3000;

 

最終執行的2句話: 取資料並放在暫存資料表,然後去查暫存資料表.

Select  goods_id,cat_id,goods_name,shop_price from goods where shop_price > 2000;

========> temptable

 

再次查暫存資料表

Select * from temptable where shop_price< 3000



mysql基礎之視圖

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.