8.2 数据库_原仔在路上的博客-程序员秘密

8.2.1触发器

特殊类型的存储结构,由事件触发,而不是程序或手动启动。当数据有特殊操作时,自动触发执行SQL语句。

触发器和存储过程的区别:

1.触发器是自动被触发,存储过程显式调用。

2.触发器不能使用COMMIT,ROLLBACK语句,存储过程可以。

3.触发器不能接受参数传入,存储过程可以。

两类触发器:DML触发器,DLL触发器。

DML:数据操作触发器,当数据库服务器发生数据操作语言事件时执行的存储过程。有After和Instead Of两种。After触发器是在记录改变之后进行的,Instead Of是在记录变更之前,去执行触发器,代替原来的sql语句,也就是说原有的sql是为了触发这个动作。

DLL:数据定义触发器,相应数据定义语句时触发的存储过程。

作用:

1.增加安全性

2.利用触发器记录所进行的修改和相关信息。

3.维护那些通过声明表时的声明约束不可能实现的复制的完整性约束,以及对数据库中特定事件的监控

4.自动完成某些功能。


8.2.2索引

索引是提高访问速度的机制。它是一个在数据库的表或视图上按照某个关键字段的值,升序或降序排列创建的对象。当用户查询索引字段时,可以快速执行检索操作。

是与表或视图相关联的磁盘上结构。

聚集索引和非聚集索引

聚集:行的物理顺序和键值的逻辑顺序一样,一个表只能有一个聚集索引。与非聚集索引相比,一般有更快的访问速度。

非聚集:索引有指针,指向数据存储位置,索引的项目按索引前的顺序存储。


8.2.3撤销和回滚

回滚是利用undo保证事务有效,即执行失败,则回滚到事务执行前的状态。

撤销更多用来恢复数据库。如突然断电,利用undo把未完成的的事务处理。


8.2.4 备份

完全备份:全部信息,是恢复的基线。不但是数据文件,日志文件,还有存储位置,以及全部对象的相关信息。在备份过程中的事务和未完成的事务都被忽略

差异备份:从上一次完全备份之后的数据库修改, 差异备份过程中的操作可以备份起来。

事务日志备份:上次备份后的日志记录

增量备份:备份针对上一次备份的修改


8.2.5 游标

可以改变数据库按表进行操作,使按行进行操作

















版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012910569/article/details/38865819

智能推荐

apktool工具分析_HTYBAY的博客-程序员秘密

上一篇讲到ApkDecoder这个类,大部分调用到还是Androlib类,而且上次发现brutall的代码竟然不是最新的,遂去找iBotP.的代码了。今天来看Androlib的代码:   private final AndrolibResources mAndRes = new AndrolibResources(); protected final ResUnknownFil

Sentinel流控模式_m0_49326844的博客-程序员秘密

Sentinel流控模式一.阈值类型:·QPS:设置每秒能承受的请求数量·线程数:设置最多支持的线程数量二.流控模式:·直接:对当前资源进行限流操作,设置QPS单机阈值,即为当前资源每秒接收请求的上限为5次,超过就限流·关联:当关联的资源接收到的请求达到了阈值上线,则对当前资源进行限流操作·链路:以调用链路为单位做限流处理,整个链路的总体流量只按照入口资源的请求量来计算三.流控效果:·快速失败:直接抛出限流异常·预热:避免低水位服务器突然接收到大量请求暴毙,逐渐放宽限流策略,例如Q

springboot安装SSL证书(微信小程序后台访问)_韵~的博客-程序员秘密_springboot安装证书

springboot安装SSL证书(微信小程序后台访问)SSL安装误区步骤一步骤二步骤三步骤四步骤五步骤六背景搭建微信小程序后端(我使用的是java的Springboot+SSM框架)时发现微信小程序在“”“真机调试”和“上线”后request请求后端需要后端服务通过https合法请求,https请求需要安装SSL证书,故写一段以供下次搭建参考SSL安装误区我们安装SSL证书时网上有大批大佬的文章教程,但大多是localhost本机生成的SSL证书(openssl等工具),这类证书的功能只能是将原先

一个超牛的PowerDesigner的破解 ..._zxl333的博客-程序员秘密

从官网下载下来的PowerDesigner 好像只有十五天的试用期.在网上搜了好几个补丁都没有用.后来搜到一个超牛的破解方法.破解方法如下: 在PowerDesigner安装目录下,找到pdflm12.dll,用记事本或其它编辑工具打开,显示的应该是一些二进制的内容.找到83 C4 14 8B 85 E4 FE FF FF,把这一段改成:83 C4 14 33 C0 90 90 90 90.重新打

Setinterl全面介绍_weixin_33895604的博客-程序员秘密

Setinterval全面介绍源文件:From: <由 Windows Internet Explorer 7 保存>Subject: =?gb2312?B?c2V0SW50ZXJ2YWzIq8PmtcS96cnc?=Date: Tue, 3 Jun 2008 11:10:01 +0800MIME-Version: 1.0Content-Type...

随便推点

tensorflow-gpu的安装(包括CUDA,cudnn和keras)_痛快最重要的博客-程序员秘密

想用下GPU加下速,所以折腾了一下在自己的笔记本上装上了tensorflow-gpu,经历了一番坑后总算是装上了。先说下我的环境:显卡:GTX 1050Tiwindows10+CUDA9+CUDNN7+python3.5.6+tensorflow-gpu1.5.0+keras2.1.4另外:pip:最新的19.2.3(最好升级到最新版,防止意外)没用anaconda,全程直...

Android自定义ViewGroup实现流式布局_shineflowers的博客-程序员秘密

实现宽度不足自动换行的流式布局:FlowLayout.javapackage com.jackie.flowlayout;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;/** * Cr

MySQL(基础篇) 第二章 带你看看MySQL的日志系统_我是一只快乐的攻城狮的博客-程序员秘密

前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志)。如果接触 MySQL,那这两个词肯定是绕不过的,我后面的内容里也会不断地和你强调。不过话说回来,redo log 和 binlog 在设

基于docker部署mysql主从复制集群_CRUD的W的博客-程序员秘密

目录前言部署mysql1、先直接启动一个mysql容器2、把配置文件拷贝出来,因为我们主从架构需要用到配置文件,使用考虑使用挂载的方式修改配置文件3、删除我们刚才的容器,我们仅仅是为了拿到配置文件4、修改配置文件内容5、启动master和slave节点6、进入master容器内7、获取binlog名字和position8、开启主从同步9、测试是否主从配置成功总结前言本文介绍如何基于docker部署一主一从的mysql集群部署mysql首先我们先启动两个mysql容器,安装docker的步骤在此不做介

在selenium中,find_element与find_elements的区别_study forever的博客-程序员秘密

在selenium中,find_element与find_elements的区别find_element只返回查找到的第一个元素,如果没有查找到元素,则返回NoSuchElementException的异常find_elements返回一个包含所有元素的列表,如果没有元素,则返回空列表...

黑马程序员—集合(下)-Map_w13774591947的博客-程序员秘密

----------android培训、java培训、期待与您交流!----------