一、事务
1、什么是事务
事务是一种机制、一个操作序列,包含了一组数据库操作命令,事务是一个不可分割的工作逻辑单元,所以一组数据库命令要么都执行,要么都不执行。事务是作为单个逻辑工作单元执行的一系列操作,具有:
原子性:事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行
一致性:当事务完成时,数据必须处于一致状态
隔离性:并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务
持久性:事务完成后,它对数据库的修改被永久保持
2、如何执行事务
支持事务的存储引擎有lnnoDB和BDB。(lnnoDB存储引擎主要通过UNDO日志和REDO日志实现m,MylSAM存储引擎不支持事务)
语法:
开始事务:BEGIN 或START TRANSACTION;
提交事务:COMMIT ;
回滚(撤销)事务:ROLLBACK ;
设置自动提交关闭或开启:set autcommit=0/1;
值为0是:关闭自动提交;
值为1是:开启自动提交;
在执行完autcommit=0时即自动关闭自动提交,
二、视图
1、什么是视图:视图是一种查看数据库一个或多个表中的数据的方法,是一种虚拟表,通常是作为执行查询的结果而创建的
视图充当着查询中指定表的筛选器。
2、视图的用途:
- 筛选表中的行
- 防止未经许可的用户访问敏感数据
- 降低数据库的复杂程度
- 将多个物理数据库抽象为一个逻辑数据库
3、创建视图和使用视图
1、使用sql语句创建视图
create view 视图名 as <select 语句>;
2、使用sql语句删除视图
drop view [if exists] 视图名;
3、使用sql语句查看视图数据
select 字段1,字段2,…… from view_name;
4、使用视图的注意事项 :
- 视图中可以使用多个表
- 当视图数据来自多个表时,不允许添加和删除数据
- 一个视图可以嵌套另一个视图
- 对视图数据进行添加、更新和删除操作直接影响所引用表中的数据
三、索引
1、什么是索引:索引是一种有效组合数据的方式,为快速查找到指定记录是用在查询类型方面,
作用是通过使用索引,大大提高数据库的检索速度,改善数据库性能。
2、索引分类 :
普通索引-------基本索引类型,允许在定义索引的列中插入重复值和空值
唯一索引-------索引列数据不重复,允许有空值
主键索引-------主键列中的每个值是非空、唯一的,一个主键将自动创建主键索引
复合索引-------将多个列组合作为索引
全文索引-------支持值的全文查找,允许重复值和空值
空间索引-------对空间数据类型的列建立的索引
3、怎样创建索引
create unique fulltext spatial index 索引名
on 表名(length 索引长度);
4、删除索引
drop index 索引名 on 表名
5、使用索引注意事项
1、 查询时减少使用*号
2、索引值尽量小
3、有多个where条件时,包含索引表达式应置于其他条件之后。
4、避免order by 子句中使用表达式
6、查看索引
show index from 索引名
四、备份和恢复
1、使用 mysqldump备份数据库
mysqldump -u name -p password 备份数据库名称>文件名称.sql
2、使用mysql恢复数据库
mysql -u name -p password 备份数据库名称>文件名称.sql