MySql数据库4-基础-视图的使用

一、概述

视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。
并且在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。

二、操作视图

1,准备数据

创建一个学生表
数据如下:
在这里插入图片描述
创建一个教师表
数据如下:
在这里插入图片描述

2,视图的创建

语法:

create view 视图名称 as 查询语句(结果);

示例:将学生表和教师表通过class关联起来,得到哪个老师教哪些学生的一个结果视图

create view teacher_student_info as
select s.key_id,s.s_name,t.t_name from student_info s , teacher_info t where s.class=t.class;

在这里插入图片描述
查看视图中的数据
在这里插入图片描述

3,视图的使用

使用方式和普通的表一样。
查询学生名字为张三的数据

select * from teacher_student_info where s_name = '张三';

在这里插入图片描述

4,视图的修改

语法:
方式一:

create or replace view 视图名 as 查询语句(结果);

方式二:

alter view 视图名 as 查询语句(结果);

示例:
视图中原本由ke y_id,s_name,t_name三个字段,现在把key_id这个字段删除:

alter view teacher_student_info as
select s.s_name,t.t_name from student_info s , teacher_info t where s.class=t.class;

此时再次执行查询学生名字为张三的数据:
在这里插入图片描述
可以看到key_id这个字段已经没有了。

5,视图的删除

语法:

drop view 试图名1[,试图名2,...];

6,视图信息的查看

语法:
– 查看视图的表结构:

desc 试图名;

desc teacher_student_info;
在这里插入图片描述
– 查看视图的创建过程(sql语句)

show create view 试图名;

show create view teacher_student_info;
在这里插入图片描述

三、操作视图数据

1,修改视图数据

新增、修改、删除语句都与普通表的操作相同,但是一般来说都不会或者不要通过视图来修改数据,因为对视图数据的修改会影响到原始表,会把原始表的数据也修改了。

2,无法修改的视图

当视图在创建时有一下特点的情况,视图都无法修改

  • 包含以下关键字的sql语句:分组函数、distinct、group by、having、union
  • 常量视图(create view test_view_name as select ‘88888’ t_name;)
  • select 中包含子查询
  • join连接查询
  • from一个不能修改的视图
  • where子句的自查询引用了from子句中的表

四、表与视图的对比

语法是否占用实际存储空间草足使用
视图create view不占用:只保存了sql逻辑增删改查(一般只用于查询)
create table占用:保存了实际的数据

视图的好处

  • 重用sql语句
  • 简化复杂的sql操作,不必知道它的查询细节
  • 保护数据,提高数据安全性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值