作者简介:小明java问道之路,专注于研究 Java/Liunx内核/C++及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。

        

 热衷分享,喜欢原创~ 关注我会给你带来一些不一样的认知和成长。

        

 CSDN博客专家 | CSDN后端领域优质创作者 | CSDN内容合伙人 | 2022博客之星

 InfoQ(极客邦)签约作者、阿里云专家 | 签约博主、51CTO专家 | TOP红人、华为云享专家

        

如果此文还不错的话,还请关注、点赞、收藏三连支持一下博主~ 

 文末获取联系    精彩专栏推荐订阅收藏 

        

专栏系列(点击解锁) 学习路线(点击解锁) 知识定位 Redis从入门到精通与实战 Redis从入门到精通与实战 围绕原理源码讲解Redis面试知识点与实战 MySQL从入门到精通 MySQL从入门到精通 全面讲解MySQL知识与企业级MySQL实战 计算机底层原理 深入理解计算机系统CSAPP 以深入理解计算机系统为基石,构件计算机体系和计算机思维 Linux内核源码解析 围绕Linux内核讲解计算机底层原理与并发 数据结构与企业题库精讲 数据结构与企业题库精讲 结合工作经验深入浅出,适合各层次,笔试面试算法题精讲 互联网架构分析与实战 企业系统架构分析实践与落地 行业最前沿视角,专注于技术架构升级路线、架构实践 互联网企业防资损实践 互联网金融公司的防资损方法论、代码与实践 Java全栈白宝书 精通Java8与函数式编程 本专栏以实战为基础,逐步深入Java8以及未来的编程模式 深入理解JVM 详细介绍内存区域、字节码、方法底层,类加载和GC等知识 深入理解高并发编程 深入Liunx内核、汇编、C++全方位理解并发编程 Spring源码分析 Spring核心IOC/AOP等源码分析 MyBatis源码分析 MyBatis核心源码分析 Java核心技术 只讲Java核心技术

本文目录

本文目录

本文导读

一、视图(view)的基本概念

1、什么是视图(view) 

2、视图(view)的使用场景

二、视图增删改查的实战

1、MySQL创建视图(CREATE VIEW)

2、MySQL查看视图(DESCRIBE、SHOW CREATE VIEW  )

3、MySQL删除视图(DORP VIEW)

4、MySQL修改视图(ALTER VIEW)

三、视图操作基表数据实战(视图对表的增删改)

总结

本文导读

本文主要讲解视图(view)的基本概念,什么是视图以及视图的使用场景,视图增删改查的实战(CREATE、DESCRIBE、SHOW CREATE、DORP和ALTER),视图的更新操作包括增加(INSERT)、删除(DELETE)和更新(UPDATE)的视图操作基表数据实战。

一、视图(view)的基本概念

1、什么是视图(view) 

视图(view)是一个虚拟的逻辑表,视图本身不包含数据,仅作为select语句保存在数据字典中。

视图所依赖的表称为基表(创建视图的数据库表),视图的创建和删除只影响视图本身,而不影响相应的基表,在视图中添加、删除和修改数据时,数据表中的数据将相应地更改,同样的数据库基表中添加、删除和修改视图也会更改。

 

通常小型项目的数据库一般不使用视图,在大型项目中,当数据表很复杂时,视图可以帮助我们将频繁查询的结果集放到虚拟表中,以提高使用效率。

2、视图(view)的使用场景

使用视图的不需要关心相应表的结构、关联条件和过滤条件,视图已过滤复合条件的结果集。

使用视图的只能访问允许查询的结果集,基表权限管理不能局限于行或列,可以通过视图简单地实现。

使用视图结构,可以掩盖表结构更改对用户的影响,向基表中添加列对视图没有影响,如果修改了基表的列名,可以通过修改视图来解决,而不会影响访问者。

视图的大部分使用是为了确保数据安全和提高查询效率。

二、视图增删改查的实战

1、MySQL创建视图(CREATE VIEW)

CREATE VIEW 语句来创建视图,指定创建视图的SELECT语句,该语句可用于查询多个基表或源视图,SELECT不能引用系统或用户变量,不能在FROM中包含子查询,也不能引用预处理的语句参数。视图定义中引用的表或视图必须存在,创建视图后,可以删除定义引用的表或视图。视图定义中允许ORDER BY 语句,视图无法创建TEMPORARY 表(临时表)视图也无法定义临时表。

-- CREATE VIEW 语句来创建视图

-- 指定创建视图的SELECT语句,该语句可用于查询多个基表或源视图

-- SELECT不能引用系统或用户变量,不能在FROM中包含子查询,也不能引用预处理的语句参数

CREATE VIEW <视图名> AS

-- 例如

CREATE VIEW view_name AS SELECT * FROM order_info;

2、MySQL查看视图(DESCRIBE、SHOW CREATE VIEW  )

与数据表信息一样,使用DESCRIBE关键字查看视图字段信息,使用 SHOW CREATE VIEW 语句查看视图的详细信息。

-- 查看视图

DESCRIBE 视图名;

DESC 视图名;

-- SHOW CREATE VIEW 语句查看视图的详细信息

SHOW CREATE VIEW 视图名;

3、MySQL删除视图(DORP VIEW)

删除视图是指删除MySQL数据库中的现有视图,删除视图时,只能删除视图的定义,而不能删除数据。

-- 使用 DROP VIEW 语句来删除视图。

DROP VIEW <视图名1> [ , <视图名2> …]

4、MySQL修改视图(ALTER VIEW)

修改视图( ALTER VIEW )是指修改MySQL数据库中现有的视图。当基本表的某些字段发生更改时,可以修改视图以保持与基本表的一致性。

要修改视图的定义,可以使用 ALTER VIEW或 DROP VIEW 语句先删除视图,然后使用 CREATE VIEW 语句再次创建,使用 WITH CHECK OPTION 意味着在修改视图时,检查插入的数据是否满足WHERE设置的条件。

可以使用 UPDATE、DELETE 或 INSERT 等语句更新基本表的内容。对于以下结构中的任何一种,它就是不可更新的:聚合函数 SUM()、MIN()、MAX()、COUNT() 等、DISTINCT 关键字、HAVING 、UNION 或 UNION ALL 运算符、FROM 子查询、FROM 包含多个表。

-- 使用 ALTER VIEW 语句来对已有的视图进行修改

ALTER VIEW <视图名> AS

三、视图操作基表数据实战(视图对表的增删改)

视图的更新操作还包括增加(INSERT)、删除(DELETE)和更新(UPDATE)数据,更新操作的实际对象是基表。

-- INSERT语句通过视图添加数据

INSERT [into] 视图名 [(字段名1, 字段名2, …)] values | value (值1, 值2, …);

-- 例如

INSERT into view_name values (***,***,***);

-- DELETE语句通过视图删除数据

DELETE from 视图名 [where 条件语句]

-- 例如

DELETE from view_name where name='***';

-- UPDATE语句通过视图更新数据

UPDATE 视图名 set 字段名=值 [where 更新条件]

-- 例如

UPDATE view_name set name='****' where name='***'

总结

本文主要讲解视图(view)的基本概念,什么是视图以及视图的使用场景,视图增删改查的实战(CREATE、DESCRIBE、SHOW CREATE、DORP和ALTER),视图的更新操作包括增加(INSERT)、删除(DELETE)和更新(UPDATE)的视图操作基表数据实战。

查看原文