13、mysql中视图的应用
生活随笔
收集整理的這篇文章主要介紹了
13、mysql中视图的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
是什么
視圖是一種有結構沒結果的虛擬表,其結構是從基表中產生的,視圖主要用于查詢數據。在sql層面上來看,視圖就是對select查
詢語句的封裝,我們看到的虛擬表(也就是視圖)就是select語句查詢出的結果組成的
視圖的作用
視圖可以節省sql語句,將一條復雜的查詢語句用視圖進行保存,之后對視圖進行操作即可,方便操作
視圖操作主要針對查詢,對視圖結構進行操作不會影響基表數據,相對安全
可以對外提供有用數據,隱藏關鍵(無用)數據,保證數據安全
對外提供友好型,不同視圖提供不同數據,好像專門對外設計
視圖可以更容易的權限控制
視圖結構操作
視圖的結構操作包括創建視圖、修改視圖、刪除視圖、查看視圖結構
創建視圖
#創建視圖 create view user_card as select u.name ,c.card_number from user u left join card c on u.id = c.uid where card_number is not null;修改視圖
# 修改視圖 alter view user_card as select u.name ,c.card_number from user u left join card c on u.id = c.uid;查看視圖結構
# 查看視圖(適用于表的就適用于視圖) -- 查看視圖各個字段 desc user_card;-- 查看創建sql語句 show create view user_card;刪除視圖
# 刪除視圖 drop view user_card;視圖數據的操作
單表視圖是可以進行新增、刪除的,但是不推薦使用視圖進行此操作,在這里不做介紹
視圖是可以修改數據的,和操作表一樣的進行更新數據即可,但是不推薦使用,在這里不做介紹
視圖的作用是用來查詢數據的,查詢視圖的sql和查詢數據表一樣
視圖算法
視圖算法指的是系統對視圖以及外部查詢視圖的select語句的一種解析方式,分類如下:
| temptable | 臨時表算法,系統先執行視圖的select語句,后執行外部查詢語句 |
| merge | 合并算法,系統應該先將視圖對應的select語句與外部查詢視圖的select語句進行合并,然后執行(常態、效率高) |
指定算法創建視圖的操作
create algorithm=merge view user_card as select u.name ,c.card_number from user u left join card c on u.id = c.uid where card_number is not null;?
總結
以上是生活随笔為你收集整理的13、mysql中视图的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12、数据库的设计范式
- 下一篇: 14、mysql中事务的应用