MySQL-视图

视图

虚拟表,和普通表一样使用
MySQL5.1版本出现的新特性,是通过表动态生成的数据

视图的好处

  • 重用sql
  • 简化复杂的sql操作,不必知道查询细节
  • 保护数据,提高安全性

使用场景

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

案例

查询姓张的学生名和专业名

select stuname,majorname
from stuinfo s
inner join major m on s.majorid=m.id
where s.stuname like '张%';

#创建视图
create view v1
as 
select stuname,majorname
from stuinfo s
inner join major m on s.majorid=m.id;

select * from v1 where stuname like '张%';

视图的修改

方式一

create or replace view 视图名

方式二

alter view 视图名
as
查询语句;

删除视图

drop view 视图名,视图名..;

查看视图

desc 视图名
show create view 视图名\G;

视图的更新

视图的更新会改变原表的数据
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的

  • 包含关键字:分组函数、distinct、group by、having、union、union all
  • 常量视图
  • select中包含子函数
  • join
  • from一个不能更新的视图
  • where子句的子查询引用了from子句中的表
create or replace view v1
as
select name,email,salary
from employees
where employee_id in(
	select manager_id
	from employees
	where manager_id is not null
);

视图和表的区别

-创建语法的关键字是否实际占用物理空间使用
视图create view只保存sql逻辑增删改查,一般不能删改
create table保存了数据增删改查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值