MySQL由浅至深(七)

MySQL由浅至深(七)

ID:41061163

大小:306.96 KB

页数:25页

时间:2019-08-15

MySQL由浅至深(七)_第1页
MySQL由浅至深(七)_第2页
MySQL由浅至深(七)_第3页
MySQL由浅至深(七)_第4页
MySQL由浅至深(七)_第5页
资源描述:

《MySQL由浅至深(七)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MySQL课程高级2第七章要做就做最好,要不就不做!MySQL视图ALTERVIEW语法CREATEVIEW语法DROPVIEW语法SHOWCREATEVIEW语法在5.1版MySQL服务器中提供了视图功能(包括可更新视图)。本章讨论了下述主题:·使用CREATEVIEW或ALTERVIEW创建或更改视图。·使用DROPVIEW销毁视图。·使用SHOWCREATEVIEW显示视图元数据。MySQL-CREATEVIEW语法CREATE[ORREPLACE][ALGORITHM={UNDEFINED

2、MERGE

3、TEMPTABLE}]   V

4、IEWview_name[(column_list)]   ASselect_statement[WITH[CASCADED

5、LOCAL]CHECKOPTION]该语句能创建新的视图,如果给定了ORREPLACE子句,该语句还能替换已有的视图。select_statement是一种SELECT语句,它给出了视图的定义。该语句可从基表或其他视图进行选择。该语句要求具有针对视图的CREATEVIEW权限,以及针对由SELECT语句选择的每一列上的某些权限。对于在SELECT语句中其他地方使用的列,必须具有SELECT权限。如果还有ORREPLA

6、CE子句,必须在视图上具有DROP权限。MySQL创建视图视图属于数据库。在默认情况下,将在当前数据库创建新视图。要想在给定数据库中明确创建视图,创建时,应将名称指定为db_name.view_name。mysql>CREATEVIEWtest.vASSELECT*FROMt;表和视图共享数据库中相同的名称空间,因此,数据库不能包含具有相同名称的表和视图。视图必须具有唯一的列名,不得有重复,就像基表那样。默认情况下,由SELECT语句检索的列名将用作视图列名。要想为视图列定义明确的名称,可使用可选的column_list子句,列出由逗号隔开

7、的ID。column_list中的名称数目必须等于SELECT语句检索的列数。SELECT语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。对于SELECT语句中不合格的表或视图,将根据默认的数据库进行解释。通过用恰当的数据库名称限定表或视图名,视图能够引用表或其他数据库中的视图。能够使用多种SELECT语句创建视图。视图能够引用基表或其他视图。它能使用联合、UNION和子查询。SELECT甚至不需引用任何表。在下面的示例中,定义了从另一表选择两列的视图,并给出了根据这些列计算的表达式:mysql>CREATE

8、TABLEt(qtyINT,priceINT);mysql>INSERTINTOtVALUES(3,50);mysql>CREATEVIEWvASSELECTqty,price,qty*priceASvalueFROMt;mysql>SELECT*FROMv;MySQL视图的定义视图定义服从下述限制:SELECT语句不能包含FROM子句中的子查询。SELECT语句不能引用系统或用户变量。SELECT语句不能引用预处理语句参数。在存储子程序内,定义不能引用子程序参数或局部变量。在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引

9、用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECKTABLE语句。在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图。在视图定义中命名的表必须已存在。不能将触发程序与视图关联在一起。MySQL-WITHCHECKOPTION对于可更新视图,可给定WITHCHECKOPTION子句来防止插入或更新行,除非作用在行上的select_statement中的WHERE子句为“真”。在关于可更新视图的WITHCHECKOPTION子句中,当视图是根据另一个视图定义的时,LOCAL和CASCADED关键字决定了检查测试的

10、范围。LOCAL关键字对CHECKOPTION进行了限制,使其仅作用在定义的视图上,CASCADED会对将进行评估的基表进行检查。如果未给定任一关键字,默认值为CASCADED。请考虑下述表和视图集合的定义:mysql>CREATETABLEt1(aINT);mysql>CREATEVIEWv1ASSELECT*FROMt1WHEREa<2WITHCHECKOPTION;mysql>CREATEVIEWv2ASSELECT*FROMv1WHEREa>0WITHLOCALCHECKOPTION;mysql>CREATEVIEWv3ASSELE

11、CT*FROMv1WHEREa>0WITHCASCADEDCHECKOPTION;注:这里,视图v2和v3是根据另一视图v1定义的。v2具有LOCAL检查选项,因此,仅会针对v2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。