前言:
当前我们对“mysql视图能增删改吗”大致比较关心,我们都想要学习一些“mysql视图能增删改吗”的相关知识。那么小编在网络上网罗了一些关于“mysql视图能增删改吗””的相关文章,希望咱们能喜欢,兄弟们一起来学习一下吧!视图: MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sq|逻辑,不保存查询结果
应用场景
多个地方用到同样的查询结果该查询结果使用的sql语句较复杂
视图的优点
重用sql语句简化复杂的sql操作,不必知道它的查询细节保护数据,提高安全性
视图与表的对比
创建语法关键字
是否实际占用物理空间
使用
视图
create view
只是保存了sql逻辑
增删改查,一般不使用增删改
表
create table
保存了数据
增删改查
创建视图
语法:
create view视图名
as
查询语句;
student表
id
name
sex
age
subject
score
teacher_id
1
张三
男
15
语文
80
1
2
李四
女
15
语文
85
1
3
王二
男
16
语文
65
2
4
张三
男
15
英语
86
3
5
李四
女
15
英语
77
3
6
王二
男
16
英语
56
4
7
张三
男
15
数学
98
5
8
李四
女
15
数学
76
6
9
王二
男
16
数学
54
6
teacher表
id
name
sex
age
1
张行
男
45
2
柳青青
女
35
3
杨逍遥
男
27
4
胡月华
女
55
5
李丽
女
38
6
王志杰
男
41
案例:查询每个学生对应科目的教师名
#创建视图
create view v1
as
select s.name s_name ,s.subject,t.name t_name from student s
inner join teacher t
on s.teacher_id = t.id
#使用视图:查询张三的语文老师姓名
select teacher_name from v1
where name ='张三' and subject ='语文'
视图的修改
方式一:(SQL SERVER 不支持)
create or replace view 视图名
as
查询语句; .
案例:
#修改视图
create or replace view v1
as
select s.id s_id ,s.name s_name ,s.subject,t.id t_id,t.name t_name from student s
inner join teacher t
on s.teacher_id = t.id
#方式二:
alter view 视图名
as
查询语句;
案例:
#修改视图
alter view v1
as
select s.id s_id ,s.name s_name ,s.subject,t.id t_id,t.name t_name from student s
inner join teacher t
on s.teacher_id = t.id
删除视图
drop view视图名,视图名,...;
视图的更新
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。
包含以下关键字的sql语句:分组函数、distinct、 group by、having、 union或者union all
常量视图
Select中包含子查询
join
from一个不能更新的视图
where子句的子查询引用了from子句中的表
标签: #mysql视图能增删改吗