php核心部分24等笔记.pdfVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

视图,view

基本概念:

一张利用查询语句所形成的虚拟表!

对客户端的用户,就是一个表的含义!

创建一个视图:

在比赛表中,显然大部分查询比赛信息,都需要得到两个球队的信息:

将两个球队的信息,利用一个虚拟表,保存起来,下次查询就不必要再次做连接!直接查询

刚刚所保存的虚拟表即可!

语法:

createview名字AS查询语句

将刚刚的比赛信息结果,形成一个视图:

此时,只需要同时该视图,就可以完成对比赛信息的查询,降低的业务逻辑的复杂程度!

注意:

视图内,是不保存数据的:

只记录查询语句,和其他的一些信息!

因此:

数据还是在原始表中,每次对视图的查询,都会利用查询语句,从原始表中,获得数据,形

成结果!删除视图,数据还是存在:

因此,视图的两大作用:

1,简化业务逻辑~!

2,对客户端,隐藏真实表结构!此时如果真实表结构变化,我们可以重建视图。

不要对视图进行修改操作!

而且也不是所有的更新视图,都会映射到表上!

相关语法

创建:

createviewview_nameASselect_statement;

删除:

dropviewview_name;

查询视图:

视图的执行过程,视图算法

注意:

查询,最高的队员:

利用from型子查询完成:

如果使用视图呢?将按照身高做一次排序的视图!

创建视图:

查询视图:

利用视图查最高:

可见结果不对:

视图在执行时,有不同的执行流程:

不同的视图算法:

merge,合并

temptable,临时表

默认是:undefinded,表示未定义,指的是mysql自主去选择相应的算法!

merge,合并:

将视图的查询语句,与外部查询需要先合并再执行!

temptable:临时表:

将视图执行完毕后,形成临时表,再做,外层查询!

测试上的查询视图:

合并算法:

执行为:

再看临时表:

显然,如果视图中,会出现要求顺序严格的子句,最好将算法定义成临时表的!

在创建视图是可以指定视图的算法!

利用

createalgorithm=merge|temptable|undefinedviewview_nameasselect_statement

注意:

视图,一定是对实际表建立的视图!

主要指:

1,视图所关联的表必须存在!

2,所关联的表不是能是一个临时表from子查询使用的表!

事务,transaction

一组sql的集合!要不都成功,要不都失败!

支持连续sql的集体成功还是集体撤销!

而是,事务,算是数据库在数据完整性方面的一个功能!

需要利用innodb引擎,对自动提交的特性的支持完成!

需要保证表的引擎是innodb的!innodb引擎,也被称为:事务安全型的引擎!

相关语法:

开启事务的特性:

starttransaction

开始,下面所执行的所有的sql,被认为是一个事务内的sql语句!

此时,如果需要执行的操作都成功了!

就应该将当前操作,让其他的连接看到,并且持久化到表中!

称之为,事务提交

commit完成

此时如果部分操作发生问题,应该将对数据的改变,映射到事务开始的时候!

将刚刚从操作,事务回滚

rollback完成!

典型的就三个语句,一个引擎:

innodb

starttransaction(begin可以代替)

commit

rollback

事务的原理

利用innodb的自动提交的特性完成!

每当msyql执行了一条语句后,都会默认的将当前操作做的影响,提交的数据上!

提交(是更改让其他客户端可见,持久化数据)

而事务,是将自动提交的机制,关闭了!因此开启事务后,当前的所执行的sql,就不会让

其他客户端可见;

简单的,可以通过修改服务器的自动提交的参数,完成类似事务的功能:

利用一个服务器的变量完成!

0,为关闭自动提交,1,开启自动提交:

此时一旦关闭,则执行的sql,在其他的客户端也不可见,需要当前客户端提交才可以!

典型的,也可以使用setautocommit=0来开启事务。

与starttransaction不同的是:

setautocommit是永久改变服务器的设置,直到下次再次修改!

而starttransaction记录开启前的状态,而一旦该事务提交或者回滚后,会自动回到原有的

状态!

事务的特点:

ACID

原子性,

一致性,

文档评论(0)

honglajiao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档