MySQL视图详解

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL视图。

一、MySQL视图详解

MySQL引入了视图的概念,所谓视图,其实就是一张虚拟的数据表,该数据表与其他普通数据表一样,有列和属性。视图和普通的数据表唯一不同的是,视图中本身没有数据,视图中的数据都是从各个数据表中select查询的结果,对视图中数据的插入和修改本质上也是对原始数据表的插入和修改,因此,我们可以修改视图的数据,但是不能删除视图中的数据和向视图内插入数据。
正确的使用视图,可以使得我们在业务场景中更好的实现我们的需求,总得来看,视图有以下优点:
1、视图的创建,通常来源于SQL语句,对于很复杂的联表查询SQL语句,如果经常使用,那么写起来也很麻烦,在这种情况下,就可以直接创建视图,这样就把我们联表查询的语句转换成对视图内容的查询,简化了我们的操作。
2、视图可以提供一定的安全性,例如在开发过程中,一个数据表中存在了一些敏感数据和非敏感数据,那么对于不可信任的用户,就可以创建一个视图,该视图只包含非敏感数据,并且将不可信用户的操作引导视图上,这样即可以使得不可信用户能够满足正常的业务需求,同时还可以增强系统的安全性。

二、MySQL视图使用

MySQL视图的创建,完全是以select语句的执行为基础的,MySQL视图创建的MySQL命令格式如下:

create view 【视图名】 asselect语句】;

创建视图SQL语句示例如下:

create view student_grade as select * from student s left join grade g on s.id=g.Sid;

视图在创建后,执行命令,show tables,可以查询到刚才我们创建的视图,它是作为一个表存在的,如下所示:
MySQL视图详解_第1张图片
如果我们向视图内添加或者删除数据,会被MySQL所拒绝。更新视图数据会被允许,但是其本质是对视图对应的数据表的修改,如下所示:

最后,如果我们想删除上述视图,可以执行命令:

alter view student_grade;

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(MySQL,mysql,数据库,sql,运维DBA,MySQL视图)