8.2 数据库
8.2.1触发器 特殊类型的存储结构,由事件触发,而不是程序或手动启动。当数据有特殊操作时,自动触发执行SQL语句。 触发器和存储过程的区别: 1.触发器是自动被触发,存储过程显式调用。 2.触发器不能使用COMMIT,ROLLBACK语句,存储过程可以。 3.触发器不能
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 游标
可以改变数据库按表进行操作,使按行进行操作