MySQL 基础篇 九【视图】

一、简介

视图:MySQL从5.0.1版本开始提供视图功能。

一种虚拟存在的表,行和列的数据来自 定义视图 的查询中使用的表 ,并且是在使用视图时动态生成的,只保存了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 '张%';

视图的优点:

• 重用sql语句

• 简化复杂的sql操作,不必知道它的查询细节

• 保护数据,提高安全性 

二、视图的创建

创建视图的语法:
create [or replace] view view_name
As select_statement
[with|cascaded|local|check option]

三、视图的修改

修改视图的语法:
create or replace view view_name
As select_statement
[with|cascaded|local|check option]

 语法2:

alter view view_name
As select_statement
[with|cascaded|local|check option]

四、视图的查看和删除

查看视图的语法:
show tables;
如果需要查询某个视图的定义,可以使用show create view
命令进行查看:
show create view view_name \G

 

删除视图的语法:
用户可以一次删除一个或者多个视图,前提是必须有该视
图的drop权限。
drop view [if exists] view_name,view_name …[restrict|cascade]

五、视图的更新

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。

• 包含以下关键字的sql语句:分组函数、distinct、group by 、having、union或者union all

• 常量视图

• Select中包含子查询

• join

• from一个不能更新的视图

• where子句的子查询引用了from子句中的表

六、视图和表的对比

视图语法:create view

表语法:create table

视图没有实际占用物理空间,只是保存了SQL逻辑;

表占用了物理空间,保存了数据。

视图可以增删改查,但一般是查;

表可增删改查。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值