事务,视图。。。
什么是事务
1)事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作
2)多个操作作为一个整体向系统提交,要么都执行、要么都不执行
3)事务是一个不可分割的工作逻辑单元
事务必须具备以下四个属性,简称ACID 属性
1)原子性(Atomicity)
事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行
2)一致性(Consistency)
当事务完成时,数据必须处于一致状态
3)隔离性(Isolation)
并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务
4)持久性(Durability)
事务完成后,它对数据库的修改被永久保持
MySQL中支持事务的存储引擎有InnoDB和BDB
语法:
回滚事务,数据恢复到原始状态
默认情况下,每条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启、关闭事务
关闭自动提交后,从下一条SQL语句开始则开启新事务,需使用COMMIT或ROLLBACK语句结束该事务
为什么需要视图
不同的人员关注不同的数据
保证信息的安全性
1.视图是一张虚拟表
1)表示一张表的部分数据或多张表的综合数据
2)其结构和数据是建立在对表的查询基础上
2.视图中不存放数据
1)数据存放在视图所引用的原始表中
3.一个原始表,根据不同用户的不同需求,可以创建不同的视图
视图的用途
筛选表中的行
防止未经许可的用户访问敏感数据
降低数据库的复杂程度
将多个物理数据库抽象为一个逻辑数据库
注意事项:
视图中可以使用多个表
一个视图可以嵌套另一个视图
对视图数据进行添加、更新和删除操作直接影响所引用表中的数据
当视图数据来自多个表时,不允许添加和删除数据
使用视图修改数据会有许多限制,一般在实际开发中视图仅用作查询
索引是一种有效组合数据的方式,为快速查找到指定记录
作用 :
大大提高数据库的检索速度
改善数据库性能
MySQL索引按存储类型分类
B-树索引:InnoDB、MyISAM均支持
哈希索引
常用索引类型:
创建索引的指导原则
按照下列标准选择建立索引的列
1)频繁搜索的列
2)经常用作查询选择的列
3)经常排序、分组的列
4)经常用作连接的列(主键/外键)
请不要使用下面的列创建索引
1)仅包含几个不同值的列
2)表中仅包含几行
使用索引的注意事项:
查询时减少使用*返回全部列,不要返回不需要的列
索引应该尽量小,在字节数小的列上建立索引
WHERE子句中有多个条件表达式时,包含索引列的表达式应置于其他条件表达式之前
避免在ORDER BY子句中使用表达式
数据库备份:
注意:mysqldump是DOS系统下的命令, 在使用时无须进入mysql命令行,否则将无法执行
常用参数选项:
备份文件包含的主要信息
备份后文件包含信息MySQL及mysqldump工具版本号
备份账户的名称
主机信息
备份的数据库名称
SQL语句注释和服务器相关注释
CREATE和INSERT语句
恢复数据库:
注意:
1. mysql为DOS命令
2.在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在恢复数据库过程将会出错
导出/导入数据
文本文件导入到数据表
总结: