c mysql 视图_MySQL视图

MySQL视图

视图的概念

视图是一种虚拟存在的表,行和列的数据来自于定义的视图的查询中使用的表,并且是在使用视图中动态生成的,只保存sql逻辑,不保存数据

应用场景多个地方使用同样的查询结果

该查询结果使用的sql语句较为复杂

视图

创建视图#语法结构

create view 视图名

as 查询语句

create view my_view as select s.name as student_name,c.name as class_name from student s join class c on s.classid = c.id;

#查看视图  此时视图里只有两个字段

desc my_view;

+--------------+-------------+------+-----+---------+-------+

| Field        | Type        | Null | Key | Default | Extra |

+--------------+-------------+------+-----+---------+-------+

| student_name | varchar(20) | NO   |     | NULL    |       |

| class_name   | varchar(20) | NO   |     | NULL    |       |

+--------------+-------------+------+-----+---------+-------+

使用视图查询#注意:查询时只可以使用视图中的字段进行查询

select * from  my_view where student_name = '张三';

修改视图

有两种方式修改视图

方式一:有则修改,没有则创建create or replace view 视图名

as 查询语句

方式二:alter view 视图名 as 查询语句

删除视图drop view 视图名,视图名,...

视图中数据更新

在使用简单地查询语句作为视图时,可以对视图进行增删改操作,而且对视图的操作也会同样使数据表完成相应的变化

但是包含以下特点的视图不允许更新分组函数、distinct、group by、having、union、union all

常量视图

select中包含子查询

join语句(可以update但是不可以insert和delete)

数据来自于一个不可更新的视图

Where 子句的子查询引用了from子句中的表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值