0


【MySQL】MySQL视图原理与实战(MySQL专栏启动)

📫作者简介:小明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)的视图操作基表数据实战。


本文转载自: https://blog.csdn.net/FMC_WBL/article/details/128540827
版权归原作者 小明java问道之路 所有, 如有侵权,请联系我们删除。

“【MySQL】MySQL视图原理与实战(MySQL专栏启动)”的评论:

还没有评论