设为首页 加入收藏

TOP

(8)mysql中的视图
2015-07-24 10:53:35 来源: 作者: 【 】 浏览:2
Tags:mysql

概念

视图是一种虚拟存在的表,对于使用视图的用户来说,基本上跟使用正常的表一样。视图在数据库中是不存在的,视图中的数据是动态生成的。

视图相对于普通表的优势:

简单:使用视图不需要关心后面的表的对应结构条件,对于使用者来说,视图是过滤好的结果集。 安全:使用者只能访问他们被允许查询的结果集。 数据独立:一旦视图结构确定,对实际表的改变对视图使用者是没有影响的。

视图操作

视图操作分为创建视图、修改视图、删除视图、查看视图定义。

创建视图,修改视图

#创建视图
create [or replace] [algorithm={undefined|merge|temptable}]
view view_name[(column_list)]
as select_statement
[with[cascaded|local] check option]

#修改视图
alter [algorithm={undefined|merge|temptable}]
view view_name[(column_list)]
as select_statement
[with[cascaded|local] check option]

举例:

create view view_test as select t1.sid,t1.username,t2.department from test1 t1 left join test2 t2 on t1.sid=t2.sid;

创建视图<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="language-sql hljs ">说明:

from关键字后面不能包含子查询; 不能更新的视图:包含聚合函数/group/distinct/having/union,常量视图,select中包含子查询,jion,from一个不能更新的视图,where中子查询引用from子句中的表。 with[cascaded|local] check option 绝对是否允许更新数据使记录不再满足视图条件。其中local-只需满足本视图条件就可以更新、cascaded-必须满足所有针对该视图的所有视图的条件才可以更新。默认为cascaded。

查看视图数据

同普通表

select * from view_test;

查看视图数据

删除视图

#删除视图 drop view [if exists] view_name [,view_name2]...[restrict|cascade] #举例 drop view view_test;

查看视图状态

从MySQL5.1开始,使用show tables命令的时候不仅显示表名还显示视图名称。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Debian下MySQL安装 下一篇Oracle内存管理(之五)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)