MySQL进阶之视图

MySQL进阶之视图

目录

  • MySQL进阶之视图
    • 什么是视图
    • 创建视图
    • 查看视图
    • 更新视图
    • 修改视图
    • 删除视图

什么是视图

视图可以理解为一个虚拟表,它并不是一个真实存储数据的容器,它更像是一个或多个表的查询结果的镜像

例如你需要操作表1和表2之间的数据,可以用视图将两表查询的结果组合成新的表格展示给你,这样你就能通过查看视图来获取特定的数据,而不用再频繁的操作原始表格数据

创建视图

create(or replace) view view_name as select * from table_name

create表示创建新的视图
replace表示替换已创建的视图,可以不写
view_name表示创建的视图名称
select之后跟着的是查询语句

MySQL进阶之视图_第1张图片

示例中此时创建了两张class表,现在要用union返回两表合并的结果 如下:

MySQL进阶之视图_第2张图片

那么现在我想持久化的保存这个结果该怎么办呢?

直接创建视图:

-- 将查询语句直接复制到as后面
create view stu_view as select * from class1 union select * from class2;

注意:视图创建时不允许有相同字段(列),在进行多表查询时需要额外注意

查看视图

此时视图就已经创建好了

它和sql建表语句一样支持desc和select,你可以将他当做一张新的表格

-- 查询表数据
select * from stu_view;

-- 查看视图结构
desc stu_view;

MySQL进阶之视图_第3张图片

MySQL进阶之视图_第4张图片

更新视图

更新视图是指在原表的基础上进行增(insert into)、删(delete)、改(update)的操作,视图并不能直接修改数据,因为它只是一个虚拟表,并非用于存储数据

示例:当修改class2的数据时视图stu_view的内容也会跟着发生变化

-- 更新原表数据
update class2 set name="钱10" where name = "钱十";

-- 查看修改后的视图
select * from stu_view;

MySQL进阶之视图_第5张图片

可以看到当原表内容发生变化时,视图的内容也会跟着修改

修改视图

修改视图的语句与创建基本一致

replace view_name as select condition;

replace修改视图规则
condition新的查询条件

删除视图

删除视图时,只能删除视图的定义,不会删除数据

-- 删除指定视图
drop view view_name;

-- 删除多个视图 view_name2指需要删除的其他视图
drop view View_name [,view_name2];

你可能感兴趣的:(MySQL,mysql,android,数据库)