MySQL視圖
一.視圖的定義
視圖是由查詢結果形成的一張虛擬表,是表通過運算得到的一個投影,同一張表可以創建多個視圖 。
創建視圖的語法:
create view view_name as select xxx
這個語句可以理解爲,將該select結果命名爲view_name。
二.視圖的作用
(1).簡化查詢
例:查詢平均價格前三高的商品
正常sql語句
select pro_id avg(price) pj from t_product group by pro_id order by pj desc limit 3
創建視圖:
create view view_pro_1 as select pro_id avg(price) pj from t_product group by pro_id
查詢視圖:
select * from view_pro_1 order by pj desc limit 3
(2).進行權限控制
把表的權限封閉,但是開放相應的視圖權限,視圖裏只開放部分數據
例:用戶查詢商品的時候不想讓其看到商品的價格。
1.創建視圖不包含商品價格信息
create view view_pro_2 as select pro_id , pro_name from t_product ;
2.創建一個用戶授予查詢權限只能操作view_pro_2 視圖。
grant select on 庫.view_pro_2 to 'xxx' identified by '密碼'
三.視圖操作的基本語法
(1).查詢視圖
select * from 視圖名 where 條件
(2).修改視圖
alter view 視圖名 as select xxxx
(3).刪除視圖
drop view 視圖名
(4).查看視圖結構
desc 視圖名稱
(5).查看所有視圖
show tables
注意:沒有 show views