使用视图方式操作MySQL数据表

7.1  认识视图

7.1.1****视图的含义

视图是一种常用的数据库对象,可以把它看成从一个或几个源表导出的虚表或存储在数据库中的查询,对视图所引用的源表来说,视图的作用类似于筛选。

视图一经定义后,就可以像源表一样被查询、修改和删除。视图为查看和存取数据提供了另外一种途径,使用查询可以完成的大多数操作,使用视图一样可以完成。

使用视图还可以简化数据操作。当通过视图修改数据时,相应源表的数据也会发生变化 ;同时,若源表的数据发生变化,则这种变化也可以自动地同步反映到视图中。

视图是在源表或者视图基础上重新定义的虚拟表,它可以从源表中选取用户所需的数据,那些对用户没有用或者用户没有权限了解的数据,都可以屏蔽掉。

7.2  创建视图

创建视图可以使用 Create View 语句,该语句完整的语法格式如下 :

Create

Or Replace

\< 算法选项 \>

\< 视图定义者 \>

\< 安全性选项 \>

View < 视图名 > \< 视图的字段名称列表 \>

As <Select 语句 >

检查选项

说明

7.3  查看视图的相关信息

1**.使用Describe语句查看视图的结构定义**

如果只需要了解视图的各个字段的简单信息,可以使用 Describe 语句,其语法格式与查询数据表一样。通常情况下,可以使用缩写 Desc 代替 Describe。

Describe < 视图名称 > ;

2**.使用Show Table Status语句查看视图的基本信息**

MySQL 中,可以使用 Show Table Status 语句查看视图的基本信息,其语法格式如下 :

Show Table Status Like < 视图名称 >

该语句执行结果中列"Comment"的值为"VIEW",表示视图,其他列为 NULL(说明这是一个虚表)。

3**.使用Show Create View语句查看视图的定义信息**

MySQL 中,可以使用 Show Create View 语句查看视图的定义信息,其语法格式如下 :

Show Create View < 视图名称 > ;

任务7-1】使用Create View****语句创建单源表视图

任务描述

创建一个名称为"view_ 人邮社 0701"的视图,该视图包括"人民邮电出版社"出版的所有价格大于 40 元的图书的信息,视图中包括数据表"图书信息"中的商品编号、图书名称、出版社、商品类型等数据,已知"人民邮电出版社"的字段"出版社 ID"的值为 1。

任务实施

任务7-2】使用Navicatfor MySQL创建多源表视图

任务描述

创建一个名称为"view_ 人邮社 0702"的视图,该视图包括"人民邮电出版社"出版的所有图书的信息,视图中包括数据表"图书信息"中的商品编号、图书名称、数据表"出版社信息"中的出版社名称、数据表"商品类型"中的类型名称等数据。

任务实施

在【视图创建工具】窗口中单击【构建】按钮,关闭该窗口返回 Navicat for MySQL 的"视图"定义区域。设置好字段、数据表及关联条件、Where 条件的查询语句如下所示 :

**【任务7-3】**修改视图

当视图不符合使用需求时,可以使用 Alter View 语句对其进行修改,视图的修改方法与创建方法相似,其语法格式如下 :

Alter

\< 算法选项 \>

\< 视图定义者 \>

\< 安全性选项 \>

View < 视图名 >

As <Select 语句 >

检查选项

任务描述

(1)修改视图"view_ 人邮社 0701",使该视图包括"人民邮电出版社"出版的价格高于 40 元的所有图书信息,视图中包括数据表"图书信息"中的商品编号、图书名称、价格、出版社、商品类型等数据。

(2)修改视图"view_ 人邮社 0702",使该视图包括"人民邮电出版社"出版的价格高于 40 元的所有图书信息,视图中包括数据表"图书信息"中的商品编号、图书名称、数据表"出版社信息"中的出版社名称、数据表"商品类型"中的类型名称等数据。

任务实施

**【任务7-4】**利用视图查询与更新数据表中的数据

任务描述

(1)创建一个名称为"view_ 用户注册 0703"的视图,该视图包括所有的用户注册信息。

(2)利用视图"view_ 用户注册 0703"查询"权限等级"为"C"的用户注册信息。

(3)利用视图"view_ 用户注册 0703"新增一个注册用户,用户 ID 为"7",用户编号为"u00007",用户名称为"测试用户",密码为"todayBetter",权限等级为"A",手机号码为"18074198678",用户类型为"2"。

(4)使用视图"view_ 用户注册 0703"修改前一步新注册的用户,将其权限等级修改为"C",用户类型修改为"1"。

(5)使用视图"view_ 用户注册 0703"删除前面新注册的用户"测试用户"。

任务实施

**【任务7-5】**删除视图

删除视图是指删除数据库中已存在的视图,删除视图时,只能删除视图的定义,不会删除源表的数据。在 MySQL 中,使用 Drop View 语句删除视图时,用户必须拥有 Drop 权限。

删除视图的语法格式如下 :

相关推荐
九皇叔叔2 小时前
【第二章】Redis基础入门:Redis是什么、为什么快以及核心特性详解
数据库·redis·缓存
莫陌尛.2 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
云和恩墨2 小时前
删库不跑路,回滚极速触达——zData S“旁路日志”持续保护原理深剖
数据库
MetaLite2 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
Wang's Blog4 小时前
Java框架快速入门: Spring Security+OAuth2之元注解简化权限表达式
java·数据库·spring
毕业设计7035 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法
蓝速科技6 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
QYR-分析6 小时前
重轨受电弓行业深度报告:市场格局、技术迭代与发展前景
大数据·数据库·人工智能
泡泡鱼(敲代码中)7 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
l1t7 小时前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle