当前位置: 首页 > news >正文

使用视图方式操作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】使用 Navicat for 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 权限。

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件
  • 数学基础 -- 线性代数之矩阵正定性
  • ARM32开发——DMA内存到内存
  • 【Linux】Linux常见指令以及权限理解(上)
  • 歌者PPT新功能速递!
  • 使用PowerShell自动化你的Windows开发工作流程
  • 【K8S实践笔记】Kubernetes(v1.28)集群搭建部署(1)
  • 【困难】 猿人学web第一届 第18题 jsvmp 洞察先机
  • 设计模式-行为型模式-观察者模式
  • MediaStream 的媒体流对象 (stream) 和流媒体轨道 (track) 详解
  • mysql多线程优化并行复制
  • Leetcode3259. 超级饮料的最大强化能量
  • 2024-pip install torch为CPU版本,GPU没有被使用的解决方法(windows和linux均适用)
  • uniapp动态页面API
  • 【生日视频制作】白色卡车行万里路车身改字1版AE模板修改文字软件生成器教程特效素材【AE模板】
  • 深入了解以太坊
  • (三)从jvm层面了解线程的启动和停止
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [NodeJS] 关于Buffer
  • 【翻译】babel对TC39装饰器草案的实现
  • 08.Android之View事件问题
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Apache Pulsar 2.1 重磅发布
  • Babel配置的不完全指南
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • java取消线程实例
  • Java新版本的开发已正式进入轨道,版本号18.3
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • session共享问题解决方案
  • 从tcpdump抓包看TCP/IP协议
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 解析 Webpack中import、require、按需加载的执行过程
  • 近期前端发展计划
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前嗅ForeSpider教程:创建模板
  • 强力优化Rancher k8s中国区的使用体验
  • 设计模式走一遍---观察者模式
  • 深度学习中的信息论知识详解
  • 使用SAX解析XML
  • 事件委托的小应用
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 用 Swift 编写面向协议的视图
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 仓管云——企业云erp功能有哪些?
  • 国内开源镜像站点
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #define 用法
  • #pragma data_seg 共享数据区(转)
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三