我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中的视图

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中的视图

视图概述

视图是一种虚拟存在的表,并不在数据库中实际存在,它的数据依赖于真实存在的数据表。通过视图不仅可以看到其依赖数据表中的数据,还可以像操作数据表一样,对数据表中的数据进行添加、修改和删除。与直接操作数据表相比,视图具有以下优点。

简化查询语句

视图不仅可以简化用户对数据的理解,也可以简化对数据的操作。

安全性

通过视图,可以更加方便的进行权限控制,使特定用户只能查询和修改指定的数据,而无法查看修改数据库中的其他数据。

逻辑数据独立性

视图可以帮助用户屏蔽数据表结构变化带来的影响。

视图管理

视图管理包括创建、查看、修改和删除视图。

创建视图

CREATE [OR REPLACE] VIEW 视图名 [(字段列表)] AS select_statement

关于上述语法格式的具体介绍如下。

(1)[OR REPLACE]:可选参数,表示若数据库中已经存在这个名称的视图就替换原有的视图,若不存在则创建视图;

(2)视图名:表示要创建的视图名称,该名称在数据库中必须是唯一的,不能与其他数据表或视图同名;

(3)select_statement:指一个完整的SELECT语句,表示从某个数据表或视图中查出满足条件的记录,将这些记录导入视图中。

视图的基本表可以是一张数据表,也可以是多张数据表,下面分别以视图的基本表为单表和多表这两种情况,通过案例演示如何创建视图,具体如下。

基于单表创建视图

例如,将员工工号empno、员工姓名ename、职位job和部门编号deptno查询出来创建视图view_emp,具体SQL语句如下所示。

CREATE VIEW view_emp AS SELECT empno,ename,job,deptno FROM emp;

下面使用SELECT语句查看view_emp视图,查询语句如下所示。

SELECT * FROM view_emp;

例如,创建一个新的视图view_emp2,视图view_emp2中包含的字段和视图view_emp相同,但视图view_emp2中字段名称和员工表中字段名称不一致,具体创建语句如下所示。

CREATE VIEW view_emp2 (e_no,e_name,e_job,e_deptno) AS SELECT empno,ename,job,deptno FROM emp;

基于多表创建视图

例如,视图中需要使用ems数据库中员工编号empno、员工姓名ename、职位job、部门编号deptno和部门名称dname的信息。 下面根据需求创建视图view_emp_dept,具体创建语句及执行结果如下所示。

CREATE VIEW view_emp_dept(e_no,e_name,e_job,e_deptno,e_deptname)AS SELECT e.empno,e.ename,e.job,e.deptno,d.dname   FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;

查看视图

创建好视图后,可以通过语句查看视图的字段信息、视图的状态信息、视图的创建语句。

(1)查看视图的字段信息

在MySQL中,使用DESCRIBE语句可以查看视图的字段名、字段类型等字段信息。DESCRIBE语句的基本语法格式如下所示。

DESCRIBE 视图名;

或简写为:

DESC 视图名;

 例如,使用DESCRIBE语句查看视图view_emp_dept的字段信息,具体语句如下所示。

DESCRIBE view_emp_dept;

(2)查看视图的状态信息

在MySQL中,可以使用SHOW TABLE STATUS语句可以查看视图和数据表的状态信息。SHOW TABLE STATUS语句的基本语法格式如下所示。

SHOW TABLE STATUS LIKE '视图名';

在上述格式中,LIKE表示后面匹配的是字符串,'视图名'表示要查看的视图的名称,视图名称需要使用单引号包裹起来。

例如,使用SHOW TABLE STATUS语句查看视图view_emp_dept的信息,具体语句如下所示。

SHOW TABLE STATUS LIKE 'view_emp_dept' \G

(3)查看视图的创建语句

SHOW CREATE VIEW 视图名;

例如:

SHOW CREATE VIEW view_emp_dept\G

修改视图

视图的修改指的是修改数据库中存在的视图的定义,当视图的基本表中字段发生变化时,需要对视图进行修改以保证查询的正确性。例如,view_emp视图的基本表emp中员工姓名字段修改了名称,此时再使用视图就会出错。在MySQL中,修改视图的方式有两种,具体如下。

(1)使用CREATE OR REPLACE VIEW语句修改视图

CREATE OR REPLACE VIEW 视图名 AS SELECT语句

使用该语句修改视图时,要求被修改的视图在数据库中已经存在,如果视图不存在,那么将创建一个新的视图。

例如,在视图view_emp_dept原有的基础上新增员工上级工号的字段,具体SQL语句如下所示。

CREATE OR REPLACE VIEW view_emp_dept(e_no,e_name,e_job,e_mgr,e_deptno,e_deptname)AS SELECT e.empno,e.ename,e.job,e.mgr,e.deptno,d.dname    FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;

(2)使用ALTER语句修改视图

ALTER VIEW <视图名> AS 

例如,使用ALTER语句将视图view_emp_dept中的部门编号字段进行删除,具体语句如下所示。

ALTER VIEW view_emp_dept (e_no,e_name,e_job,e_mgr,e_deptname)AS SELECT e.empno,e.ename,e.job,e.mgr,d.dname    FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno;

删除视图

当视图不再使用时,可以将其删除。删除视图时,只会删除所创建的视图,不会删除基本表中的数据。删除一个或多个视图可以使用DROP VIEW语句,删除视图的基本语法格式如下所示。

DROP VIEW  view_name [,view_name1,…];

例如,使用DROP VIEW语句删除视图view_emp,具体SQL语句如下所示。

DROP VIEW view_emp;

视图数据操作

视图数据操作,就是通过视图来查询、添加、修改和删除基本表中的数据。因为视图是一个虚拟表,不真实保存数据,所以通过视图来操作数据时,实际操作的是基本表中的数据。本节将对视图数据的添加、修改和删除进行讲解。

添加数据

通过视图向基本表添加数据可以使用INSERT语句。例如,通过视图在部门表中添加一个部门信息。 由于此时数据库中还没有部门表对应的视图,所以需要数据库管理员先创建部门表dept对应的视图,具体SQL语句如下所示。

CREATE VIEW view_dept(d_no,d_name) AS SELECT * FROM dept;

 通过视图向数据表中添加数据的方式与直接向数据表中添加数据的格式一样,具体SQL语句如下所示。

INSERT INTO view_dept VALUES(50, '人力资源部');

修改数据

通过视图修改基本表的数据,可以使用UPDATE语句。 例如,使用UPDATE语句,通过视图将研究院的部门名称修改为研究中心,具体SQL语句如下所示。

UPDATE view_dept SET d_name='研究中心' WHERE d_name='研究院';

删除数据

通过视图删除基本表的数据,可以使用DELETE语句。 例如,通过视图view_dept删除部门表dept中部门名称为人力资源部的记录,具体SQL语句如下所示。

DELETE FROM view_dept WHERE d_name='人力资源部';

上机实践:图书管理系统中视图的应用

# 创建一个只包含图书名称、图书上架时间和图书状态的视图view_book_state

# 创建一个只包含图书名称、借阅者名称和借阅时间的视图view_book_borrower

# 删除视图view_book_borrower

来源地址:https://blog.csdn.net/daqi1983/article/details/127606739

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中的视图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql的视图

什么是视图视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由select结果组成的表;视图的特性视图是对若干张基本表的引用,一张虚表,查询
mysql的视图
2018-08-23

MySQL视图

视图常见的数据库对象视图概述为什么使用视图可以帮助我们使用表中的部分数据,对其修改可以改变原来表中的值可以简化查询控制数据的访问(权限)视图的理解视图是一种虚拟表,本身不具有数据的,占用极少的内存视图建立在已有表的基础上,我们可以视图所依据的表叫做基表视图的创
MySQL视图
2021-05-23

MySQL 视图

视图的概念视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。  视图的作用安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。提高查询性能。视图只是基本表的一部分,查视图比查全表快。尤其是多表查询的时候,查视图一张表比
MySQL  视图
2016-06-03
2024-04-02
2023-08-31

MySQL——视图

注意:视图只适用于MySQL5及之后的版本 为什么使用视图? 重用SQL语句。 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。 使用表的组成部分而不是整张表。 保存数据。可以给用户授予表的特定部分的访问权限而不是整张
MySQL——视图
2019-09-26

mysql-视图

mysql视图的定义视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存在,行和
2023-01-30

mysql中的视图用处大吗

mysql 视图是一种基于查询创建的虚拟表,具有以下优势:数据抽象和安全:隐藏基础表结构,提供数据子集视图。数据整合:连接多个基础表,形成统一虚拟表。提高查询性能:预先计算查询结果,提升性能。简化应用程序开发:提供一致数据视图,减轻开发负担
mysql中的视图用处大吗
2024-05-01

MySQL中的视图有哪些语法

这篇文章主要讲解了“MySQL中的视图有哪些语法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中的视图有哪些语法”吧!视图是什么视图View是一种虚拟的表,本身不保存数据,内部封装
2023-06-02

MySQL中view视图的作用是什么

MySQL中的view视图是一个虚拟表,它包含了从一个或多个表中获取的数据的查询。它类似于实际的表,但没有自己的存储空间。view视图的作用有以下几个方面:1. 简化复杂的查询:可以使用view视图来封装复杂的查询,使得查询更加简单和易于理
2023-09-07

编程热搜

目录