mysql--视图

一、介绍及基本语法

  • 1、介绍
    在这里插入图片描述
  • 2、语法
create [or replace] view 试图名称 as select 语句

select语句也可以从一个视图里面进行查询

在这里插入图片描述

二、视图检查选项

  • 1、 with cascaded check option语句
    检查当前视图以及依赖的视图的条件查询(不管是否有视图检查条件)
    在这里插入图片描述
    解释:

    向视图v1中添加数据时不需要判断,id<=20,因为没有检查选项(黄色表示没有添加)
    向视图v2中添加数据时需要判断,20>= id >=10
    向视图v2中添加数据时需要判断,20>= id >=10,不需要判断id<=15

  • 2、local语句
    检查当前视图的条件以及依赖视图是否设置视图检查选项,有就进行校验,没有就不进行校验
    在这里插入图片描述
    解释:只有v2添加了视图检查选项(local)

    向视图v1中添加数据时不需要判断,id<=15,因为V1没有检查选项
    向视图v2中添加数据时只需要判断, id >=10
    向视图v2中添加数据时只需要判断,id >=10,因为v3、v1没有检查选项,只有v2有检查选项

三、视图的更新

在这里插入图片描述
及视图后的select语句不能是上面的仍和一项

四、视图的作用

  • 作用一:
    提高了重用性,就像一个函数。查询每个学生所选修的课程(三张表联查),这个功能在很多业务中都有使用,我们可以创建一个视图。
    create view stu_course_view as select s.name,s.id,c.name from student s, course c, student_course sc where s.id = sc.studentid and c.id=sc.couesrid

  • 作用二:

    对数据库重构,却不影响程序的运行。对数据库重构,却不影响程序的运行。假如因为某种需求,需要将user拆分为表usera和表userb,该两张表的结构如下:
    测试表:usera有id,name,age字段
    测试表:userb有id,name,sex字段
    解决方案:创建视图。以下sql语句创建视图:

    create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name;

  • 作用三:
    提高了安全性能。可以对不同的用户,设定不同的视图。例如:某用户只能获取user表的name和age数据,不能获取phone数据。则可以这样创建视图。示例如下:
    create view user_message as select u.name, u.age from user as u;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值