【MySQL】MySQL视图详解,打通MySQL初学者任督二脉

简介: 【MySQL】MySQL视图详解,打通MySQL初学者任督二脉

🌟前言


相信很多MySQL初学者对于其中视图的认知还是很模糊,然而MySQL视图的重要性不言而喻。无论是在学校考试还是在企业面试中,都或多或少以此来对大家进行考核。那么本篇博文主要帮助MySQL初学者,更好的学习MySQL视图相关知识。


🌟视图定义


视图(view)是一种虚拟表,或者也可以叫它逻辑表。它不包含任何数据,是由select语句动态生成的。

举例:公司现在开发项目主要是以Java语言为主,然而为了满足甲方爸爸需求不得不在Java语言小组中筛选出会C语言的开发者(通过select语句查询)成立一个C语言项目小组。

这个C语言项目小组(视图、虚拟或临时表)就是从Java语言项目小组(基表、真实存在的表)中查询成立出来的。


🌟视图的优、缺点


优点


  • 安全:视图可以限制用户对基表的访问权限。通过视图,可以控制用户查询特定的行或者列数据。保证了操作数据库时的安全性。
  • 简化性:视图可以简化复杂的查询逻辑,将其封装起来。
  • 省空间:视图不占用空间,是一个虚拟表。

缺点


  • 性能差:视图根据查询语句动态生成的,每次查询视图时都需要重新计算结果集。如果视图的定义包含复杂的逻辑或连接多个表,那么查询视图可能会比直接查询基表更慢。
  • 数据一致性:如果基表数据更新,而相应的视图没有更新会造成两者的数据存在差异性。
  • 数据更新困难:视图一般不允许直接被修改,而是依赖其基表。如果视图的定义涉及多个基表,则会造成数据更新更难现象。


🌟视图的基本操作


视图创建


语法:

CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE condition;


view_name:视图名称

column:列名称

table_name:基表名称

condition:查询条件


例1:创建单表视图,名为"employee_view",显示符合条件的员工姓名和工资大于10000的相关信息。


CREATE VIEW employee_view AS
SELECT employee_name, salary
FROM employee
WHERE salary > 10000;

例2:创建多表视图,名为"employeeDept_view",显示员工名称、部门名称。


CREATE VIEW employeeDept_view AS
SELECT e.employee_name, d.dept_name,
FROM employee e
JOIN dept d ON e.employee_id = d.dept_id;


视图删除


语法:

DROP VIEW view_name;


view_name:视图名称


例:删除employee_view视图。

DROP VIEW employee_view;

注意:删除视图定义并不会影响到基表的数据。


视图修改


语法:

alter view view_name as select_statement;


view_name:视图名称

select_statement:查询语句


例:修改名为"employee_view"的视图,将查询条件修改为只显示工资大于20000的员工信息。


ALTER VIEW employee_view AS
SELECT employee_name, salary
FROM employee
WHERE salary > 20000;


为了方便大家查看语法,我总结成以下表格


操作 语法
创建视图 CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
修改视图 ALTER VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
删除视图 DROP VIEW view_name;


🌟写在最后


感谢大家对于本博文的阅读,对于MySQL视图仍有其他疑问或者有知识补充及改进的,请大家在评论区留言,非常感谢大家!


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
11月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
2024年小结:感谢阿里云开发者社区每月的分享交流活动,支持持续学习和进步。过去五个月投稿29篇,其中17篇获高分认可。本文详细介绍了MySQL InnoDB存储引擎的MVCC机制,包括数据版本链、readView视图及解决脏读、不可重复读、幻读问题的demo演示。
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(2)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
存储 SQL 关系型数据库
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】(1)
MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】
|
SQL 存储 关系型数据库
mysql-视图的定义和简单使用
这篇文章介绍了MySQL中视图的定义和简单使用方法,包括视图的创建规则和使用限制。通过一个实际的例子,展示了如何创建视图以及如何使用视图来简化复杂的SQL查询操作。
mysql-视图的定义和简单使用
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(8)作者——LJS[含MySQL 创建、修改、跟新、重命名、删除视图等具体详步骤;注意点及常见报错问题所对应的解决方法]
MySQL 创建、修改、跟新、重命名、删除视图等具体详步骤;举例说明注意点及常见报错问题所对应的解决方法
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
281 0
|
SQL 安全 关系型数据库
MySQL创建视图(CREATE VIEW)13
【7月更文挑战第13天】创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。
329 1
|
缓存 DataWorks 关系型数据库
DataWorks产品使用合集之如何抽取MySQL视图数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
237 4
|
存储 关系型数据库 MySQL
|
存储 数据可视化 关系型数据库
深入理解 MySQL 视图
深入理解 MySQL 视图
185 2

推荐镜像

更多