1.创建视图

 

1.创建视图

1
2
create view [view_name]
as [select_query]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- select 查询语句
select u.username, r.rolename from staff u
LEFT JOIN role_staff g
on u.userid = g.userid
LEFT JOIN role r
on g.roleid = r.roleid;

-- 创建该 select 查询的视图
create view staff_role_view
as (select u.username, r.rolename from staff u
LEFT JOIN role_staff g
on u.userid = g.userid
LEFT JOIN role r
on g.roleid = r.roleid)
;

查询视图

1
select * from staff_role_view;

查看视图结构信息

1
2
3
DESC staff_role_view;

DESCRIBE staff_role_view;

2.视图的作用

(1) 使用视图,简化数据查询操作,提高效率:使用视图的用户完全不需要关心视图内部对应的逻辑(各种关联、筛选条件),这样一个频繁使用的、复杂的 SQL 就不需要反复写多次。

(2) 使用视图,基表的数据就有了安全性:使用视图的用户只能访问他们被允许查询的结果集。可以对不同的用户,设定不同的视图。例如:某用户只能获取user表的 name 和 age 数据,不能获取 gender 数据,则可以创建对应的视图。

(3) 使用视图,可以保证数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。