MySQL——视图view

一、视图简介

1.什么是视图
通俗的讲,视图就是一条SELECT语句执行后返回的结果集。
就是为了隐藏一部分数据或者减少联表查询而创建的一张虚拟表

2.视图的特性
视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);
可以跟基本表一样,进行增删改查操作(ps:增删改操作有条件限制);

3.视图的作用
方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;
更加安全,数据库授权命令不能限定到特定行和特定列,但是通过合理创建视图,可以把权限限定到行列级别;

4.使用场合
权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如salary...
关键信息来源于多个复杂关联表,可以创建视图提取我们需要的信息,简化操作;

5、优缺点

优点:
    1、隐藏字段:权限控制的时候,不希望用户访问表中某些含敏感信息的列
    2、将表的关联数据,存储于视图中简化查询

缺点:
    1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。
    2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。(视图是虚拟的 跟随基本表变化)
 

二、创建语句

创建视图:
CREATE VIEW 视图名(列1,列2...)
AS SELECT (列1,列2...)
FROM  表1  (join 表2 on 条件)

删除视图:
Drop view [if exists] 视图名

一般不太会去修改视图(视图的更改可参考这篇博文

例子:


#隐藏学生的电话字段
CREATE view student_view(s_id,s_name,s_cid) 
as select s_id,s_name,s_cid from xmcc_student;

SELECT * from student_view;

#查询学生信息以及所在班级的名字
create view view_test as 
select s_id,s_name,c_name from xmcc_student s left join xmcc_class c on s.s_cid = c.c_id 

select * from view_test;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值