sql 视图的创建及用途

今天心血来潮想尝试下视图的知识,之前早就听说过这个名字,只不过碍于对未知的恐惧,或者是未知的挑战性,总是没有迈出学习视图的这一步,然后查阅了相关资料,发现视图其实还是蛮好玩的,在我工作的实际业务中,经常涉及到3,4张表关联的大数据分析查询,很多时候没办法进行优化,但是学了视图之后,突然灵机一动,想到是不是可以用这个来解决多表联查的一些优化呢,尤其是物资系统,7、8张表联查,效率是非常慢的,废话不多说,解释了原理,接下来看看如何使用。

一、创建

语法:

    用户表(users)                职位表(depts)                 组织表(orgs)

id    name    dept_id                id   name  org_id                id   name

用户表关联职位id,职位表关联组织id,现在知道了用户的id,需要查出该用户属于哪个组织,就需要如下sql:

select o.name as org_name 

from users as u 

left join depts as d on u.dept_id = d.id

left join orgs as o on d.org_id = o.id

每次都需要连接3张表才能找到该组织,如果用视图来解决这个问题的话,就可以这样:

create view org_info as (select u.id as user_id,d.id as dept_id,o.id as org_id,o.name as org_name from users as u

left join depts as d on u.dept_id = d.id

left join orgs as o on d.org_id = o.id)

创建好视图之后,以后每次要完成上述需求,只需要对视图进行查询:

select org_name from org_info where user_id = 1

这样就完成了,是不是很简单!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值