当前位置: 首页 > news >正文

wordpress支持什么语言安庆网站关键词优化

wordpress支持什么语言,安庆网站关键词优化,烟台网站建设九七,百度论坛发帖第三节 事务和视图3.1事务事务是用来维护数据库完整性的#xff0c;它能够保证一系列的MySQL操作要么全部执行#xff0c;要么全不执行。举一个例子来进行说明#xff0c;例如转账操作#xff1a;A账户要转账给B账户#xff0c;那么A账户上减少的钱数和B账户上增加的钱数必…第三节 事务和视图3.1事务事务是用来维护数据库完整性的它能够保证一系列的MySQL操作要么全部执行要么全不执行。举一个例子来进行说明例如转账操作A账户要转账给B账户那么A账户上减少的钱数和B账户上增加的钱数必须一致也就是说A账户的转出操作和B账户的转入操作要么全部执行要么全不执行如果其中一个操作出现异常而没有执行的话就会导致账户A和账户B的转入转出金额不一致的情况为而事实上这种情况是不允许发生的所以为了防止这种情况的发生需要使用事务处理。1. 事务的概念事务(Transaction)指的是一个操作序列该操作序列中的多个操作要么都做要么都不做是一个不可分割的工作单位是数据库环境中的逻辑工作单位由DBMS中的事务管理子系统负责事务的处理。目前常用的存储引擎有InnoDB(MySQL5.5以后默认的存储引擎)和MyISAM(MySQL5.5之前默认的存储引擎)其中InnoDB支持事务处理机制而MyISAM不支持。2. 事务的特性事务处理可以确保除非事务性序列内的所有操作都成功完成否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的序列可以简化错误恢复并使应用程序更加可靠。但并不是所有的操作序列都可以称为事务这是因为一个操作序列要成为事务必须满足事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个特性简称为ACID特性。1) 原子性原子是自然界最小的颗粒具有不可再分的特性。事务中的所有操作可以看做一个原子事务是应用中不可再分的最小的逻辑执行体。使用事务对数据进行修改的操作序列要么全部执行要么全不执行。通常某个事务中的操作都具有共同的目标并且是相互依赖的。如果数据库系统只执行这些操作中的一部分则可能会破坏事务的总体目标而原子性消除了系统只处理部分操作的可能性。2) 一致性一致性是指事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态。当数据库中只包含事务成功提交的结果时数据库处于一致性状态。一致性是通过原子性来保证的。例如在转账时只有保证转出和转入的金额一致才能构成事务。也就是说事务发生前和发生后数据的总额依然匹配。3) 隔离性隔离性是指各个事务的执行互不干扰任意一个事务的内部操作对其他并发的事务都是隔离的。也就是说并发执行的事务之间既不能看到对方的中间状态也不能相互影响。例如在转账时只有当A账户中的转出和B账户中转入操作都执行成功后才能看到A账户中的金额减少以及B账户中的金额增多。并且其他的事务对于转账操作的事务是不能产生任何影响的。4) 持久性持久性指事务一旦提交对数据所做的任何改变都要记录到永久存储器中通常是保存进物理数据库即使数据库出现故障提交的数据也应该能够恢复。但如果是由于外部原因导致的数据库故障如硬盘被损坏那么之前提交的数据则有可能会丢失。【示例8】使用事务保证转账安全-- 创建account账户表create table account(id int primary key auto_increment,username varchar(30) not null,balance double);-- 为account账户表同时插入两条数据insert into account (username, balance) values(张三, 2000),(李四, 2000);-- 查看account账户表中的数据select * from account;-- 开启转账事务start transaction;update account set balancebalance-200 where username张三;update account set balancebalance1200 where username李四;select * from account;-- 当我们关闭数据库重新打开后张三和李四的账户余额并没发生任何变化。-- 这是因为当我们使用“START TRANSACTION”开启一个事务后该事务的提交方式不再是自动的-- 而是需要手动提交而在这里我们并没有使用事务提交语句COMMIT-- 所以对account表中数据的修改并没有永久的保存到数据库中也就是说我们的转账事务并没有执行成功-- 提交转账事务commit;-- 事务的回滚也可以看做是结束事务的标记但是回滚的事务并没有执行成功而是让数据库恢复到了执行事务操作前的初始状态。-- 需要注意的是事务的回滚必须在事务提交之前因为事务一旦提交就不能再进行回滚操作。rollback;3. 事务的并发问题脏读(Dirty read)当一个事务正在访问数据并且对数据进行了修改而这种修改还没有提交到数据库中这时另外一个事务也访问了这个数据然后使用了这个数据。因为这个数据是还没有提交的数据那么另外一个事务读到的这个数据是“脏数据”依据“脏数据”所做的操作可能是不正确的。不可重复读(Unrepeatableread): 指在一个事务内多次读同一数据。在这个事务还没有结束时另一个事务也访问该数据。那么在第一个事务中的两次读数据之间由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况因此称为不可重复读。幻读(Phantom read): 幻读与不可重复读类似。它发生在一个事务(T1)读取了几行数据接着另一个并发事务(T2)插入了一些数据时。在随后的查询中第一个事务(T1)就会发现多了一些原本不存在的记录就好像发生了幻觉一样所以称为幻读。不可重复度和幻读区别不可重复读的重点是修改幻读的重点在于新增或者删除。解决不可重复读的问题只需锁住满足条件的行解决幻读需要锁表例1(同样的条件, 你读取过的数据, 再次读取出来发现值不一样了 )事务1中的A先生读取自己的工资为 1000的操作还没完成事务2中的B先生就修改了A的工资为2000导 致A再读自己的工资时工资变为 2000这就是不可重复读。例2(同样的条件, 第1次和第2次读出来的记录数不一样 )假某工资单表中工资大于3000的有4人事务1读取了所有工资大于3000的人共查到4条记录这时事务2 又插入了一条工资大于3000的记录事务1再次读取时查到的记录就变为了5条这样就导致了幻读4. 事务的隔离级别事务的隔离级别用于决定如何控制并发用户读写数据的操作。数据库是允许多用户并发访问的如果多个用户同时开启事务并对同一数据进行读写操作的话有可能会出现脏读、不可重复读和幻读问题所以MySQL中提供了四种隔离级别来解决上述问题。事务的隔离级别从低到高依次为READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ以及SERIALIZABLE隔离级别越低越能支持高并发的数据库操作。【示例9】事务的隔离级别-- 查看默认的事务隔离级别 MySQL默认的是repeatable readselect transaction_isolation;-- 设置事务的隔离级别set session transaction isolation level read uncommitted;set session transaction isolation level read committed;set session transaction isolation level repeatable read;set session transaction isolation level serializable;3.2 视图 view1. 视图的概念视图是一个从单张或多张基础数据表或其他视图中构建出来的虚拟表。同基础表一样视图中也包含了一系列带有名称的列和行数据但是数据库中只是存放视图的定义也就是动态检索数据的查询语句而并不存放视图中的数据这些数据依旧存放于构建视图的基础表中只有当用户使用视图时才去数据库请求相对应的数据即视图中的数据是在引用视图时动态生成的。因此视图中的数据依赖于构建视图的基础表如果基本表中的数据发生了变化视图中相应的数据也会跟着改变。2. 视图的好处简化用户操作视图可以使用户将注意力集中在所关心地数据上而不需要关心数据表的结构、与其他表的关联条件以及查询条件等。对机密数据提供安全保护有了视图就可以在设计数据库应用系统时对不同的用户定义不同的视图避免机密数据(如敏感字段“salary”)出现在不应该看到这些数据的用户视图上。这样视图就自动提供了对机密数据的安全保护功能【示例9】视图练习1-- 创建或替换单表视图create or replace view myview1asselect empno, ename, job, mgr, hiredate, deptnofrom empwhere hiredate 1981-09-23with check option-- 使用视图desc myview1;select * from myview1;insert into myview1 values(9998,9999,clerk,7839,1980-12-23,20);select * from emp-- 删除视图drop view myview1;-- 多表视图create or replace view myview2asselect e.empno,e.ename,e.sal,d.deptno,d.dnamefrom dept djoin emp e on d.deptno e.deptnowhere sal 2500select * from myview2【示例10】视图练习2--统计视图create or replace view myview3asselect d.deptno 部门编号,dname 部门名称,avg(sal) 平均工资,max(sal) 最高工资,count(*)人数from emp ejoin dept dusing(deptno)where deptno is not nullgroup by deptnoorder by avg(sal)--基于视图的视图create or replace view myview4asselect * from myview3where 最高工资3000-- 查看视图列表show tables;本节作业1. 事务的概念和特征2. 并发问题及其事务的隔离级别3. 视图的定义和优点4. 完成示例9示例10视图操作本知乎号每日更新2篇java基础视频贴以及2-4篇java基础技术文章有兴趣的同学可以关注学习。
http://wiki.neutronadmin.com/news/450285/

相关文章:

  • 鄂州网站seo爱网聊的男人是什么心理
  • 全国加盟网站建设seo技巧是什么意思
  • 影视网站开发背景图库下载网站源码
  • 做百度竞价网站搜索不到网络营销专业就业
  • 网站如何在google提交收录湛江网站seo推广
  • 电子政务网站建设要求海报设计 网站
  • 哈尔滨网站优化技术服装网站建设的利益分析
  • h5 技术做健康类网站直播带货实训总结报告
  • 最好的开发网站建设seo什么职位
  • 珠海建设公司网站大连是谁建设的
  • 网站建设系统有哪些什么是企业邮箱怎么申请
  • 石家庄网站运营招聘网有哪些网站比较好
  • 网站开发培训培训班嘉兴市城乡规划建设局网站
  • 宇锋网站建设腾博会的网站是什么
  • 自己怎么做返利网站吗重庆公司办社保需要什么资料
  • 设计素材网站外网福州网站制作设计
  • 手机触屏版网站开发网站建设快照优化
  • 四川路桥建设股份有限公司网站网站名申请
  • 济宁网站制作公司在线是免费生成网
  • 基于asp.net网站开发公司网站建设457216336
  • 中国有哪些软件公司关键词优化是什么
  • 番禺高端网站建设开网站做淘宝客
  • 增加网站广告位网站建设后的注意问题
  • app 网站开发dell网站的设计特色
  • 免费建设网站软件下载物流行业网站模板
  • 做网站app的工资高吗wordpress首页404
  • 手机网站建设可信赖wordpress就是博客吗
  • 公司网站开发怎么做android开发技术
  • 建设网站需要哪些步骤自己做个购物网站
  • 网站 建设平台分析报告网页制作公司的服务