📫作者简介:小明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)的基本概念,什么是视图以及视图的使用场景,视图增删改查的实战(CREATE、DESCRIBE、SHOW CREATE、DORP和ALTER),视图的更新操作包括增加(INSERT)、删除(DELETE)和更新(UPDATE)的视图操作基表数据实战。
一、视图(view)的基本概念
**1、什么是视图(view) **
视图(view)是一个虚拟的逻辑表,视图本身不包含数据,仅作为select语句保存在数据字典中。
视图所依赖的表称为基表(创建视图的数据库表),视图的创建和删除只影响视图本身,而不影响相应的基表,在视图中添加、删除和修改数据时,数据表中的数据将相应地更改,同样的数据库基表中添加、删除和修改视图也会更改。
通常小型项目的数据库一般不使用视图,在大型项目中,当数据表很复杂时,视图可以帮助我们将频繁查询的结果集放到虚拟表中,以提高使用效率。
2、视图(view)的使用场景
使用视图的不需要关心相应表的结构、关联条件和过滤条件,视图已过滤复合条件的结果集。
使用视图的只能访问允许查询的结果集,基表权限管理不能局限于行或列,可以通过视图简单地实现。
使用视图结构,可以掩盖表结构更改对用户的影响,向基表中添加列对视图没有影响,如果修改了基表的列名,可以通过修改视图来解决,而不会影响访问者。
视图的大部分使用是为了确保数据安全和提高查询效率。
二、视图增删改查的实战
1、MySQL创建视图(CREATE VIEW)
CREATE VIEW 语句来创建视图,<SELECT语句>指定创建视图的SELECT语句,该语句可用于查询多个基表或源视图,SELECT不能引用系统或用户变量,不能在FROM中包含子查询,也不能引用预处理的语句参数。视图定义中引用的表或视图必须存在,创建视图后,可以删除定义引用的表或视图。视图定义中允许ORDER BY 语句,视图无法创建TEMPORARY 表(临时表)视图也无法定义临时表。
-- CREATE VIEW 语句来创建视图
-- <SELECT语句>指定创建视图的SELECT语句,该语句可用于查询多个基表或源视图
-- SELECT不能引用系统或用户变量,不能在FROM中包含子查询,也不能引用预处理的语句参数
CREATE VIEW <视图名> AS <SELECT语句>
-- 例如
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 <SELECT语句>
三、视图操作基表数据实战(视图对表的增删改)
视图的更新操作还包括增加(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)的视图操作基表数据实战。
版权归原作者 小明java问道之路 所有, 如有侵权,请联系我们删除。