MySQL进阶之视图

MySQL进阶之视图

什么是视图

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

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

创建视图

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

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

image-20240130152917459

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

image-20240130152932278

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

直接创建视图:

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

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

查看视图

此时视图就已经创建好了

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

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

-- 查看视图结构
desc stu_view;

image-20240130153237938

image-20240130153248002

更新视图

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

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

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

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

image-20240130155048251

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

修改视图

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

replace view_name as select condition;

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

删除视图

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

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

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

相关推荐

  1. MySQL触发器

    2024-01-31 07:44:01       47 阅读
  2. Python学习路-MySQL

    2024-01-31 07:44:01       44 阅读
  3. MySQL存储过程(变量)

    2024-01-31 07:44:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-31 07:44:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-31 07:44:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-31 07:44:01       87 阅读
  4. Python语言-面向对象

    2024-01-31 07:44:01       96 阅读

热门阅读

  1. Dubbo的集群容错策略剖析

    2024-01-31 07:44:01       55 阅读
  2. qt学习:多媒体Multimedia摄像头

    2024-01-31 07:44:01       59 阅读
  3. 在 C# 中 checked 和 unchecked 关键字

    2024-01-31 07:44:01       50 阅读
  4. MyBatis-Plus同款ES ORM框架

    2024-01-31 07:44:01       57 阅读
  5. 面试问答总结之ElasticSearch

    2024-01-31 07:44:01       69 阅读
  6. centos7常用命令之安装插件2

    2024-01-31 07:44:01       60 阅读
  7. react列表拖拽排序组件

    2024-01-31 07:44:01       65 阅读
  8. 2024 高级前端面试题之 React 「精选篇」

    2024-01-31 07:44:01       74 阅读