0
点赞
收藏
分享

微信扫一扫

Python小白学习教程从入门到入坑------第二十课 闭包&修饰器(语法基础)

爱情锦囊 2024-11-06 阅读 5

视图

介绍:视图(view)是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据都来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。

视图只存了查询的SQL逻辑,不保存查询结果,创建视图,主要工作在创建SQL查询语句上

  • 创建
  • 查询

查看创建视图语句:show create view 视图名称;

查看视图数据:select  *  from 视图名称

  • 修改
  • 删除

with cascade local check option;

视图检查选项:

当使用上述语句时,创建视图时,MySQL会通过视图检查正在更改的每个行,例如:插入、更新、删除,以使其符合视图的定义。MySQL允许另一个视图创建视图,它还会使依赖视图中的规则以保持一致性。为了确定检查的范围。

MySQL提供了两个选项:cascade和local ,默认值为cascade

级联:

vi  id < 20

v2 from  v1>10  with cascade

v3 from v2 <15

v2要检查v1的条件

local不会查上一级的条件,除非上一级也带local,才会检查

  • 视图的更新

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

  1. 聚合函数或窗口函数(sum()、min()、max()、count()等)
  2. distinct
  3. groupby
  4. having
  5. union或union all

作用:

  • 简单

可简化用户对数据的理解,也可简化他们的操作。

那些被经常查询可以被定义为视图,从而使得用户不必为后面的操作每次指定全部的条件。

  • 安全

数据库可以授权,但不能授权到数据库特定行和特定的列上,通过视图用户只能查询和修改他们所能见到的数据。

  • 数据独立

视图可帮助用户屏蔽真是表结构的变化带来的影响

例题:1.为提高表的安全性,在操作tb_user表时,只能看到用户的基本字段,屏蔽手机号和邮箱字段。

2.查询每个学生所选修的课程,这个功能在很多的业务中都有使用到,为了简化操作,定义一个视图。

举报

相关推荐

0 条评论