事务、视图、索引、备份、还原
事务: 是作为单个逻辑公作单元执行的一系列操作 。事务是一个不可分割的公作逻辑单元
多个操作作为一个整体向系统提交.要么都执行,要么不执行
事务必须具备以下四个属性,简称ACID属性
原子性 事务是一个完整的操作,事务的各步操作是不可分的原子性
一致性
当事务完成时,数据必须处于一致状态
隔离性
并发事务之间彼此隔离 独立 它不应该以任何方式依赖于或影响其他事务
持久性
事务完成后,它对数据库的修改被永久保持
MYSQL中支持事务的储存引擎InnoDB和BDB
开始事务
BEGIN
或
START TRANSACTION
提交事务 : COMMIT
回滚(撤销)事务:ROLLBACK
默认情况下,每一条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启,关闭事务
关闭/开启自动提交状态
SET autocommit=0|1;
值为0:关闭自动提交
值为1:开启自动提交
关闭自动提交后,从下一条语句开始则开启新事务,需要使用commit或者rollback语句结束该事务
事务是作为单个逻辑单元执行的一系列操作
四个属性
原子性
一致性
隔离性
持久性
操作事务
开始事务 提交事务 回滚事务
视图的主要用途
筛选表中的行
防止未经许可的用户访问敏感数据
降低操作数据库的复杂过程
将多个物理数据库抽象作为一个逻辑数据库
使用SQL语句创建视图
CREATE VIEW VIEW_name
as
<SELECT 语句>
使用SQL语句删除视图
DROP VIew [IF EXISTS] view_name
↓
删除前判断视图是否存在
使用SQL语句查看视图
SELECT 字段一,字段二,....FROM VIEW_name
查看所用视图
USE INFOrMAtion_schema
SELECT * from VIEWS\G
注意事项:
视图中可以使用多张表
一个视图可以嵌套另一个视图
对视图数据进行添加,更新和删除操作将直接影响所引用表中的数据
当视图数据来自多个表时,不允许添加和删除数据
使用视图修改数据会有很多限制,一般在实际开发中视图仅用作查询
索引是一种有效组合数据的方式,为了快速的查找到指定记录
作用
大大提高数据库的检索速度
改善数据的性能
MYSQL索引按存储类型分类
B-树索引: InnoDB MyISAM均支持
哈希索引
普通索引:基本索引
允许在定义索引的列插入重复值和空值
唯一索引:索引列数据不重复
允许有空值
主键索引:主键列中的每一个值是非空唯一的
一个主键将自动创建主键索引
复合索引:将多个列组合作为索引
全文索引:支持值得全文查找
允许重复值和空值
空间索引: 对空间数据类型的列建立的索引
创建一个索引
CREATE index 索引名
删除索引
DROP INDEX index_name on table_name
删除表时候 该表的索引同时被删除
按照下列标准选择建立索引的列
频繁搜素的列
经常用作查询的列
经常排序分组的列
经常用作连接列(主键/外键)
请不要使用下面的列创建索引
仅包含几个不同值的列
表中仅包含几行
查询时减少使用* 返回全部列,不要返回不需要的列
索引应该尽量小,在字节数小的列上建立索引
where子句有多个条件表达式,包含索引列的表达式应置于其他表达式之前
避免在orderby子句中使用表达式
SHOW INDEX from 表名
查看数据库中全部索引信息
USE MYSCHOOL
SHOW INDEX FROM `STUDENT\G`
备份和还原
备份
mysqldump -uroot -hlocalhost -p myschool>d:\\1.sql
恢复
mysql -uroot -proot myschool<d:\\1.sql