标签:rip null lte group 通过 set 生成 avg job
视图:
含义:虚拟表,和普通表一样使用
MySQL5.5版本出现的新特性,是通过表动态生成的数据
比如:舞蹈班和普通班的对比,
通常,舞蹈班的学生是通过普通班的学生组建起来的,也就是说舞蹈班的学生来自于普通班
案例:查询姓张的学生名和专业名
select stuname,majorname
from stuinfo a
inner join major m on a.majorid=m.id
where a.stuname like ‘张%‘;
换一种做法:
创建一个视图
create view v1
as
select stuname,majorname
from stuinfo a
inner join major m on a.majorid=m.id;
这样,上面案例可以这样做:
select stuname,majorname from v1 WHERE stuname like ‘张%‘;
二;视图的修改
方式一:
语法:
create or REPLACE view 视图名
as
查询语句;
案例:
create or REPLACE view myv3
as
select avg(salary),job_id
from employees
GROUP BY job_id;
方式二:
语法:
alter view 视图名
as
查询语句;
案例:
alter view myv3
as
SELECT * from employees;
三、删除视图
语法:drop view 视图名,视图名,,,,
一次行可以删除多个视图
drop view myv1,myv2;
四、查看视图
desc myv3;
show create view myv3;---推荐在dos命令窗口进行使用
五、更新视图
create or REPLACE view myv3
as
select last_name,email
from employees;
#1插入
insert into myv1 VALUES(‘张飞‘,‘zf@qq.com‘);
运行结果;能够向视图中插入数据,同样也能够向原始表中插入数据,只不过没有复制的字段是为null
#修改 是同样的道理
update myv1 set last_name =‘张无忌‘ where last_name =‘张飞‘;
#删除也是同样的道理
delete from myv1 where last_name=‘张无忌‘;
不过总体上来说,视图在大部分情况下是不能够进行更新操纵的
标签:rip null lte group 通过 set 生成 avg job
原文地址:https://www.cnblogs.com/dongyaotou/p/12353323.html