当前位置: 首页 > 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.khdw.cn/news/41076.html

相关文章:

  • 东莞高端商城网站建设短网址
  • 石碣做网站优化sem和seo的区别
  • 江苏公众科技网站建设网络营销的推广方法
  • 西宁网络公司网站建设宁德市
  • 网站经常出现502想要推广网页
  • 做动态网站 语音表达免费b站推广网站不用下载
  • 网站接任务来做自媒体论坛交流推荐
  • 网站建设阝金手指专业十四手机优化软件哪个好用
  • 有没有类似一起做网店的网站百度账号个人中心
  • 外发加工网站哪个靠谱网站搜索优化技巧
  • 与通信工程专业做项目的网站网络公司网站
  • 工商企业查询企业网站优化排名
  • 网页设计作品介绍范文seo优化教程培训
  • 常德seo技术站长seo查询
  • 新网站网页收录上海好的网络推广公司
  • 深圳专业做网站哪家专业seo实战教程
  • wordpress 搜索引擎平台志鸿优化设计答案
  • 域名的注册方式天津seo排名公司
  • 常德网站开发公司创新驱动发展战略
  • 北京专业网站建设公司搜索引擎优化案例分析
  • 天宫山缆车多少钱襄阳网站seo
  • 精简网站模板深圳营销型网站
  • 做网站不赚钱了巨量引擎广告投放平台代理
  • 客户制作网站时的问题今日头条搜索优化怎么做
  • 网站后台插入不了图片个人网站设计成品
  • 搜网站首页不见了seo女教师网课入06654侵录屏
  • 网站设计 用户心理研究网络营销的常用方法
  • 完整网站源码aspseo专业实战培训
  • 福建省城乡建设信息网站优化服务是什么意思
  • wordpress本地更换为网站域名百度做网站推广的费用