正常访问状态! 设为首页 | 加入收藏夹 | 浏览历史  
  http://www.guosp.com
 碧海澜涛居
  海纳百川,有容乃大。壁立千刃,无欲则刚!
 
 
关键词:
  网站首页 | 关于本站 | 技术资料 | 美文日志 | 读书收藏 | 影视收藏 | 软件收藏 | 摄影相册| 留言板 
  技术资料 >> 数据库类 关闭(快捷键alt+C)
搜索标签: 视图
MySql视图
[阅读次数:778次]  [发布时间:2011年4月28日]

修改视图需要create view 和 delete 权限。

表和视图的命令在同一个命名空间中,所以同一个数据库不能有表名和视图名重复。

可以对其他数据库中的表建视图

视图的定义有以下的限制:

1、from子句中不能有子查询

2、select不能指向系统或者用户的变量

3、select不能指向prepared语法参数

4、定义中的表或视图必须存在

5、不能对临时表建视图,也不能建临时视图

6、视图定义中的表名必须已经存在

7、不能在触发器和视图之间建关联

ORDER BY可以用在视图定义中,但是如果访问视图的select中使用的order by,则视图定义中的ORDER BY被忽略。

语法:

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL] CHECK OPTION]

例如:

create view MyView as select name from mytable

ALGORITHM扩展了标准sql,有三个值,默认值是UNDEFINED,预算法则决定了mysql如何处理视图。

对于临时表方式,会将视图的结果放置到临时表中,然后使用临时表执行sql,这样的好处是在临时表建完之后,就会释放在原表上面的锁,这样比MERGE方式更快的释放在访问的表上的锁。

对于UNDEFINED方式,是指有系统自己决定使用临时表方式还是MERGE方式,MERGER方式更高效,且临时表方式不能更新视图的数据。

对于MERGE方式,实际上是把访问视图的SQL拼接到视图本身的sql上面。要求视图的行和表的行之间是一一对应的,如果不存在

这样的一一对应的关系,则会切换到临时表算法。

包含以下关键字的sql,不能使用merge方式:

聚合函数(sum,min,max,count等等)

distinct

group by

having

union或者union all

常量视图

另外,这些视图的纪录也是不能更新和删除的,不能更新和删除纪录的视图除了以上那些情况外,还包括:

select中包含子查询

join

from一个不能更新的视图

from一个表的子查询

算法是临时表的视图

如果视图还想要可以插入纪录,则必须满足以下条件:

视图必须包含基表没有默认值的所有字段

视图列必须是简单的对应表的列,没有在上面进一步的处理。

多于多表视图的可更新性:

首先必须是基于MERGE算法的表连接必须是内连接

视图中只有一个单表是可以被更新的。

对于多表可更新视图,如果插入其中一个单表是可以的,删除纪录是不允许的

WITH [CASCADED | LOCAL] CHECK OPTION决定了是否允许更新数据使纪录不再满足视图的条件。

这个选项和oracle是类似的

local是只要满足本视图的条件就

cascade则是必须满足所有针对该表的所有视图的条件才ok。

如果没有明确是local还是cascade,则默认是cascade。

 

删除视图:

DROP VIEW [IF EXISTS]

view_name [, view_name] ...

[RESTRICT | CASCADE]

显示视图内容:

SHOW CREATE VIEW view_name





本页地址: [复制地址]
该页内容非本站原创 收藏自:http://shashoutian2005.blog.163.com/blog/static/1685415200862211557539/
返回顶部 关闭(快捷键alt+C)
评论统计(0条)| 我要评论
暂无评论内容!
我要评论 
我要评论: 带*部分需要填写
 姓名称呼: * 请填写您的姓名或呢称
联系方式: QQ,MSN,Email都可以,方便交流 (仅管理员可见)
 评论内容: * 不超过100字符,50汉字
验证码:
    
  推荐链接
  最近更新  
·Host 'XXX' is not allowed...
·Win2008或IIS7的文件上传大...
·IIS7.0上传文件限制的解决方...
·测试信息2015-03-11
·asp.net中处理图片
·ASP.NET之Web打印-终极解决...
·Asp.net下C#调用Word模版实...
·asp.net下将页面内容导入到...
·asp.net导出为pdf文件
·asp.net生成pdf文件
·FCKeditor 文本编辑器的使用...
·ASP.NET 将数据生成PDF
·asp.net2.0导出pdf文件完美...
·AspJpeg的安装与测试
·JS验证浏览器版本对IE11的支...
  热门浏览  
·IE8和IE9出现“此网页上的问...
·无线路由器密码破解,教你断...
·js替换所有回车换行符
·QQ/MSN在线交流代码
·如何取消键盘上的一些快捷键...
·IE弹出“中国工商银行防钓鱼...
·win7声音小的解决方法
·强制两端对齐的函数或者CSS...
·webdav漏洞的利用
·win7下成功安装sql server ...
·显示器分辨率调的过高导致电...
·js验证手机号码格式
·天诺时空技术技术论坛
·JS展开和收缩效果(二)
·本地计算机上的 MSSQLSERVE...
  碧海澜涛居
网站首页关于本站站长简介开发案例技术资料美文日志摄影相册读书收藏影视收藏留言板
版权所有:碧海澜涛 QQ:410436434 Email:shaopo_guo@163.com 苏ICP备15000526号
免责声明:本站为个人网站,站内所有文字、图片等各类资料均为个人兴趣爱好所收集,不用作任何商业用途,亦不保证资料的真实性,若有因浏览本站内容而导致的各类纠纷,本站也不承担任何责任。本站部分内容来自互联网,如有涉及到您的权益或隐私请联系站长解决。