MySQL视图

一、MySQL视图

视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。

1、应用场景:

  • -多个地方用到同样的查询结果
  • -该查询结果使用的sql话句较复杂

2、视图的优点

  • ·重用sql语句
  • ·简化复杂的sql操作,不必知道它的查询细节
  • ·保护数据,提高安全性 (给他人访问视图表,可以让原始表中的隐私数据字段得到有效保护)
#简单示例:查询grade>=60分同学的信息,并创建为一个视图
create view view_name1 as
select  studentname,grade,maiorname   from student as s
inner join maior as m on s.majorid=m.maiorid where s.grade>=60;

#再次查grade最大值
select max(grade) from view_name1;

#查询grade>=60,并且为前三的同学
select * from view_name1
order by grade desc
limit 3;

3、创建视图

  • create view view_name as   select ......[复杂查询语句];  #创建视图
  • select * from view_name where.....   #视图的使用和表一样

4、修改视图(修改逻辑)

  • ① create or replace view 视图名 as 查询语句;
  • ② alter view 视图名 as 查询语句;

5、删除视图

  • 语法:drop view 视图名,视图名,...;

6、查看视图

  • DESC 视图名;
  • SHOW CREATE VIEW 视图名;

7、更新视图(更新数据)

  • 注意简单的视图表同样可以执行增(INSERT INTO)删(DELETE FROM )改(UPDATE ... SET )语句的操作,用法和操作表一样,同时在试图中更新,原始表也随之被更新。
  • 不可以更新的视图:① 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all ;②常量视图;③ Select中包含子查询;④ join;⑤ from一个不能更新的视图;⑥ where子句的子查询引用了from子句中的表。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值