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

?‍?作者名称:DaenCode
?作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
?人生感悟:尝尽人生百味,方知世间冷暖。
?所属专栏:重温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视图仍有其他疑问或者有知识补充及改进的,请大家在评论区留言,非常感谢大家!


请添加图片描述文章来源地址https://uudwc.com/A/z3kye

原文地址:https://blog.csdn.net/2302_79094329/article/details/131808320

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年07月21日 15:50
下一篇 2023年07月21日 15:51