13、mysql中视图的应用

版权声明:chaizepeng https://blog.csdn.net/chaizepeng/article/details/87883244

是什么

视图是一种有结构没结果的虚拟表,其结构是从基表中产生的,视图主要用于查询数据。在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;

猜你喜欢

转载自blog.csdn.net/chaizepeng/article/details/87883244
今日推荐