MySQL基础(十):视图

  • 本博客是《MySQL基础》系列博客的第十部分,主要介绍MySQL的视图
  • 本博客既为方便自己查看复习而作,亦为你而作,望能有所裨益
  • 学习交流请联系 April_0911@163.com

基本概念

视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询的SQL语句的封装

视图意义

通过定义视图可以

  • 将频繁使用的 SELECT 语句进行封装保存以提高效率
  • 使用户看到的数据更加清晰直观
  • 不对外公开数据表全部字段,增强数据保密
  • 降低数据冗余

视图应用

为了说明视图的作用,我们在这里举一个例子:


我们要从 sakila 数据库查询出顾客的id号(Customer_id)、姓名(first_name,last_name)、地址(address)、城市(city)、国家(country)这些字段,并将其放在一张表内


因为涉及到多张表,所以这里就涉及到我们先前在《MySQL基础(七):DQL语句》中提到的连接查询。

select customer_id,first_name,last_name,ad.address,city,co.country from customer cu
join address ad on ad.address_id = cu.address_id
join city on city.city_id = ad.city_id
join country co on co.country_id = city.country_id
; -- 表后可加别名,用以简化书写,如此处address的别名为ad

但是这种复杂的多重查询语句不可能每次查询都写一遍,因此我们想是不是可以像其他语言一样封装下方便重复利用呢?
于是便有了视图

创建视图

create view <视图名> as  <所封装的语句> 

create view v_customer_info as 
select customer_id,first_name,last_name,ad.address,city,co.country from customer cu
join address ad on ad.address_id = cu.address_id
join city on city.city_id = ad.city_id
join country co on co.country_id = city.country_id;

查看视图

show full tables where table_type like '%VIEW%'; -- 查看当前数据库下已创建的所有视图
show create view <视图名>; -- 查看创建视图的SQL语句

使用视图

select * from <视图名>; -- 调用视图,即执行所封装的SQL语句 

修改视图

create or replace view <视图名> as <所封装的语句>
-- 有则改之,无则加之
alter view <视图名> as <所封装的语句>

删除视图

drop view <视图名>;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值