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

南昌网上服务上海网站快速优化排名

南昌网上服务,上海网站快速优化排名,怀化网站优化公司推荐,南京手机网站制作🚗MySQL学习第十站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据…

🚗MySQL学习·第十站~
🚩本文已收录至专栏:MySQL通关路
❤️文末附全文思维导图,感谢各位点赞收藏支持~

一.引入

视图(View)是一种虚拟存在的视图中的数据并不在数据库中实际存在行和列数据来自创建视图的查询中使用的表(基表),并且是在使用视图时动态生成的。 也就是说,视图其本身只是一段查询的SQL逻辑

在这里插入图片描述

视图也是一张数据库表,当我们创建以后,也可以像操作正常数据库一样操作它。其用途:

  • 可以简化用户对数据的理解和操作。那些被经常使用的复杂多表查询可以被定义为视图,从而避免以后的操作每次都需指定全部的条件。
  • 数据库可以授权,但不能授权到数据库特定行和特定的列上。配合视图使用可以限制用户只能查询和修改他们所能见到的数据
  • 视图可帮助用户屏蔽真实表结构变化带来的影响。

二.相关操作

(1) 创建视图

  • 语法
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

在这里插入图片描述

(2) 操作数据

视图也是一张表,我们可以像操作正常表一样操作视图。

  • 例如查询视图所有数据

在这里插入图片描述

(3) 修改视图

  • 语法
-- 方式一:
CREATE OR REPLACE VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
-- CREATE OR REPLACE 不存在则创建, 存在则替换-- 方式二:
ALTER VIEW  视图名称[(列名列表)] AS SELECT语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
  • 方式一

在这里插入图片描述

  • 方式二

在这里插入图片描述

(4) 删除视图

  • 语法
DROP VIEW [IF EXISTS] 视图名称 [,视图名称]
-- [,视图名称] 若同时删除多张视图,以逗号分割

在这里插入图片描述

(5) 查看创建视图语句

  • 语法
SHOW  CREATE  VIEW  视图名称
  • 除了我们所指定的参数,还有一堆默认配置
    在这里插入图片描述

三.检查选项

(1) 概述

由于视图是虚拟存在的表,我们对视图的操作都会反应到基表当中,假设我们对视图表插入不符合视图where条件的数据,那么这条数据只会存在于基表当中,而我们在视图表无法获悉,这岂不是插入了一条无效数据?

在这里插入图片描述

在我们创建或修改视图的语句中可以看到WITH CHECK OPTION选项,MySQL会通过视图检查正在更改的每个行,例如 插 入,更新,删除,对于满足条件(例如where条件)的操作,我们允许,否则禁止,以使其符合视图的定义。 由于MySQL允许基于另一个视图创建视图,因此它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql提供了两个选项: CASCADEDLOCAL默认值CASCADED

(2) CASCADED级联

假设v2视图是基于v1视图的,如果在v2视图创建的时候指定了检查选项为 cascaded,v1视图 创建时未指定检查选项(如果指定了则继续检查上一级,以此往复)。 则在对v2进行操作执行检查时,不仅会检查v2,还会级联检查v2的关联视图v1,如果不满足条件则无法进行相关操作。

在这里插入图片描述

  • u2插入失败示例

在这里插入图片描述

  • u2插入成功

在这里插入图片描述

  • u1插入情况

在这里插入图片描述

(3) LOCAL本地

与上述类似,LOCAL也会递归的去寻找当前视图所依赖的视图。不同的是,如果当前视图或者依赖的视图后面定义了with check option检查选项才会校验我们操作的数据是否满足该视图的条件(where),否则不会校验。

在这里插入图片描述

  • 依赖视图未定义检查选项

在这里插入图片描述

  • 依赖视图定义了检查选项
    在这里插入图片描述

四.视图更新条件

要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一 项,则该视图不可更新:

  • 聚合函数或窗口函数(SUM()、 MIN()、 MAX()、 COUNT()等)
  • DISTINCT
  • GROUP BY
  • HAVING
  • UNION 或者 UNION ALL

例如我们创建视图时使用了聚合函数,破坏了一对一关系

create view stu_v_count as select count(*) from student;

如果我们对这个视图进行更新或插入的,将会报错。

insert into stu_v_count values(10);

在这里插入图片描述

五.全文概览

在这里插入图片描述

http://www.dt0577.cn/news/22328.html

相关文章:

  • 鲜花网站怎么做网址查询站长工具
  • 网站上线之前怎么做推广域名注册服务网站
  • 网站开发自我介绍代码徐州seo企业
  • 网络哪个公司便宜又好网站优化排名操作
  • dw做网站首页长宽设置多少网络推广平台有哪些公司
  • 建站系统破解成都关键词快速排名
  • 完整网站开发视频教程营销型网站定制
  • 税务局网站建设情况汇报百度资源搜索资源平台
  • 东莞网站建设及外包网络营销成功的案例
  • 网站集约化建设题目微信营销是什么
  • 电子商务知名网站优化网站最好的刷排名软件
  • 网页设计与制作的公司seo最好的工具
  • 17网站一起做网店广seo销售话术开场白
  • 太原网站制作公司哪家好西安网站建设网络推广
  • 做网站要到公安局去备案么一键免费建站
  • 做文案策划有些网站关键词查网站
  • 做淘宝这种网站百度关键词推广条件
  • 上海网站优化海百度提交入口网址是什么
  • 北京快三是真的吗北京seo排名厂家
  • 哪里有网络课程平台网站_就是帮老师建设一个教学的网站hao123上网从这里开始官方
  • 室内设计联盟官方网站登录百度指数分析大数据
  • 网站视觉首页怎么做网站推广文章
  • 为什么做电影网站没有流量全网营销思路
  • qq可以做公司免费网站桌子seo关键词
  • 网站建设与管理教学视频下载搜索关键词排名
  • 关于开展全县中小学校网站群建设的请示报告怎样免费建立自己的网站
  • 百度打网站名称就显示 如何做网站排名查询alexa
  • 做三角渐变用哪个网站人工在线客服系统
  • 不错的网站建设公司搜索引擎网站大全
  • 地图截选做分析图的网站互联网推广公司