MySQL的视图详解

视图
1:概述
1:视图:view,可以理解为一种有结构(二维表),但是这个结构中不真实存放着数据,虚拟表的结构来源不是自己定义,而是从对应的基表(视图的数据来源)中产生的
2:视图是MySQL5.0版本之后开始引入的,视图本身是一个虚拟表,不能对视图创建触发器,也不能使用DROP和table命令删除视图
3:视图是从数据库中一个或多个表中导出来的表,视图还可以从已经存在的视图的基础上定义,数据库中只存放了视图的定义而已,而并没有存放视图中的数据,这些数据还是存放在原来的表中,只有当使用视图查询数据的时候,数据库系统会从原来的表中取出对应的数据,因此视图中的数据是依赖于原来的表中的数据的.
2:视图的作用
视图可以筛选对用户有用的信息,是应用简单化,也保证了系统的安全,可以更好的进行权限控制
1:操作简单化
1:视图需要达到的目的就是所见即所需,也就是说,从视图看到的信息就是我们所需要了解的信息,而不需要了解的信息,将屏蔽掉
2:我们可以为经常使用的查询定义一个视图(节省SQL语句,将复杂的查询语句使用视图进行保存,以后可以直接对视图进行操作),使用户不必为同样的查询操作指定条件,简化操作
2:增加数据的安全性
1:通过视图,用户只能查询和修改指定的数据,指定数据以外的信息,用户根本接触不到,数据库授权命令可以限制用户的操作权限,但不能限制到特定的行和列上,使用视图后,可以简单方便的将用户的权限限制到特定的行和列上,这样就可以保证一些重要的信息不回被没有权限的人查看到
2:视图的操作是主要针对查询的,如果堆视图结构进行处理(删除,不会影响到表数据)
3:视图往往是在大项目中使用,而且在多系统使用(例如微信平台,第三方是拿不到腾讯平台的数据),可以对外提供有用的数据,隐藏无用的数据(节省网路带宽),数据安全
3:友好型
不同的视图提供不同的数据,对外做专门设计(针对不同的客户)
3:基本语法
create view 视图名称 as select语句;
select语句可以是普通查询,可以是连接查询,可以是联合查询,也可以是子查询
4:视图的常用操作
1:创建视图
1:创建单表视图(基表为单张表)
create view my_sv1 as select * from t_student;
create view my_cv2 as select * from t_class;
2:创建多表视图(基表为多张表)
视图基表有多张的情况下,注意字段名不能重复
create view my_sc3 as select s.*, c.name as c_name ,c.room from t_student as s left join t_class as c on s.c_id=c.id;
1:my_sc3 视图名
2:s.* 匹配学生表中的所有字段
3:注意:name字段相同,要使用别名

2:查看视图
查看视图的结构,因为视图是一张虚拟的表,表的所有查看方式都适用于视图
1:show tables

2:desc 视图名

3:show create table 视图名(查看视图创建语句)

4:视图一旦创建:系统会在视图对应的数据库文件夹下创建一个对应的结构文件:frm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值