本文主要是介绍MySQL视图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
视图 (view) 视图 view(保存sql逻辑) 表 table(占用)
- 虚拟表: 和普通表一样 mysql5.1版本出现的新特性,通过表动态生成的数据,只保存sql逻辑,不保存查询结果
- 应用场景:
- 多个地方用到同样的查询结果
- 该查询结果使用的sql语句较复杂
- 示例:
CREATE VIEW v1 创建一个v1的view视图表AS
select stuname ,majorName
from stu.stuinfo s
inner join major m on s.majorid = m.id;
SELECT * FROM v1 WHERE stuname LIKE '%三' 调用v1的视图表
-
# 查找job表,employees,department表中员工名包含a的
use myemployees;
create view myv1
as
select last_name,department_name,job_title
from employees e
join departments d on d.department_id = e.department_id
join jobs j on j.job_id = e.job_id;
# 使用
select * from myv1 where last_name like '%a%';
- 创建视图:
- 特点:
- 重用sql语句
- 简化复杂的sql操作,不必知道它的查询细节
- 保护数据,提高安全性
- 视图的修改
-
- create or repacle view 视图名 方式一
- as
- 查询语句;
- alter view 视图名
- as
- 查询语句;
- 删除视图
- 查看视图
- 视图的更新:
- insert 可以在视图中使用,也可以对原始表进行更新
- update 可以子啊视图中使用,原始表也随之更改
- 具备一下特点的视图不允许更新
- 分组函数 ,distinct,group by,having,union 或者 union all
- 常量视图
- select中包含子查询
- 含有join语句的连接其他表的
- from 一个不能更新的视图
- where子句的子查询引用了from子句中的表
- delete 和 truncate 在事务中使用的区别
- truncate 在事务中进行了rollback 回滚但是我在回滚之前的truncate操作会永久性的生效,不会受rollback影响。
- delete 在事务中进行操作,rollback回滚之后回恢复delete之前的状态
变量
- 分类
这篇关于MySQL视图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!