资源描述:
《我的MYSQL学习心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我的MYSQL学习心得(十一) 视图我的MYSQL学习心得(一)简单语法我的MYSQL学习心得(二)数据类型宽度我的MYSQL学习心得(三)查看字段长度我的MYSQL学习心得(四)数据类型我的MYSQL学习心得(五)运算符我的MYSQL学习心得(六)函数我的MYSQL学习心得(七)查询我的MYSQL学习心得(八)插入更新删除我的MYSQL学习心得(九)索引我的MYSQL学习心得(十)自定义存储过程和函数我的MYSQL学习心得(十二)触发器我的MYSQL学习心得(十三)权限管理我的MYSQL学习心得(十四)备份和
2、恢复我的MYSQL学习心得(十五)日志我的MYSQL学习心得(十六)优化我的MYSQL学习心得(十七)复制 这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图 使用视图的理由是什么?1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。2、查询性能提高3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。这是在实际开发中比较有用的4、复杂的
3、查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。创建视图创建视图的语法CREATE[ORREPLACE][ALGORITHM={UNDEFINED
4、MERGE
5、TEMPTABLE}]VIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED
6、LOCAL]CHECKOPTION]其中,CREATE:表示新建视图;REPLACE:表示替换已有视图ALGORITHM:表示视图选择算法view_name:视图名co
7、lumn_list:属性列select_statement:表示select语句[WITH[CASCADED
8、LOCAL]CHECKOPTION]参数表示视图在更新时保证在视图的权限范围之内 可选的ALGORITHM子句是对标准SQL的MySQL扩展。ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL处理视图的方式。对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义
9、的某一部分取代语句的对应部分。对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。对于UNDEFINED,MySQL自己选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。 LOCAL和CASCADED为可选参数,决定了检查测试的范围,默认值为CASCADED。脚本视图的数据来自于两个表CREATETABLEstudent(stunoINT,stunameNVARCHAR(60))CREATETABL
10、Estuinfo(stunoINT,classNVARCHAR(60),cityNVARCHAR(60))INSERTINTOstudentVALUES(1,'wanglin'),(2,'gaoli'),(3,'zhanghai')INSERTINTOstuinfoVALUES(1,'wuban','henan'),(2,'liuban','hebei'),(3,'qiban','shandong')--创建视图CREATEVIEWstu_class(id,NAME,glass)ASSELECTstudent.
11、`stuno`,student.`stuname`,stuinfo.`class`FROMstudent,stuinfoWHEREstudent.`stuno`=stuinfo.`stuno`SELECT*FROMstu_class查看视图查看视图必须要有SHOWVIEW权限查看视图的方法包括:DESCRIBE、SHOWTABLESTATUS、SHOWCREATEVIEWDESCRIBE查看视图基本信息DESCRIBE视图名DESCRIBEstu_class结果显示了视图的字段定义、字段的数据类型、是否为空、是
12、否为主/外键、默认值和额外信息DESCRIBE一般都简写成DESC SHOWTABLESTATUS语句查看查看视图基本信息查看视图的信息可以通过SHOWTABLESTATUS的方法SHOWTABLESTATUSLIKE'stu_class'NameEngineVersionRow_formatRowsAvg_row_lengthData_lengthMax_data_lengthInd