mysql事务 视图 索引 备份和恢复
事务
1.事务:
概念:是作为单个逻辑工作单元执行的一系列操作
多个操作作为一个整体向系统提交,要么都执行,要么都不执行
事务是一个不可分割的工作逻辑单元
默认情况下 , 每条单独的SQL语句视为一个事务
2.事务的特性: (简称ACIO属性)
1.原子性(Atomicity): 事务是一个完整的操作,事务的各布操作是不可分的(原子的),要么都执行,要么都不执行
2.一致性(Consistency);当事务完成时,数据必须处于一致状态
3.隔离性(Isolation): 并发事务之间彼此隔离,独立 , 他不应以任何方式依赖于或影响其他事务
4.持久性(Durability) : 事务完成后,它对数据库的修改被永久保持
3.创建事务的语法:
开始事务:
begin ; 或 start transaction
提交事务
commit ;
回滚(撤销)事务 : [数据恢复为原始状态]
rollback ;
关闭/ 开启自动提交状态:
set autocommit = 0 | 1
值为0 : 关闭自动提交
值为1 ; 开启自动提交
(1.关闭默认提交状态后,可手动开启, 关闭事务
2.关闭自动提交后,从下一条SQL语句开始则开启新事物 , 需使用commit 或 rollback语句结束该事务)
视图
1.视图 :
视图是一张虚拟表
1.表示一张表的部分数据或多张表的综合数据
2.其结构和数据是建立在对表的查询基础上
视图中不存放数据
数据存放在视图所引用的原始表中
一个原始表, 根据不同用户的不同需求 , 可以创建不同的视图
2.视图的用途:
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.降低数据库的复杂程度
4.将多个物理数据库抽象为一个逻辑数据库
3.创建视图
1.使用SQL语句创建视图:
create view view_name
AS
<select 语句> ;
2.使用SQL语句删除视图:
drop view [ if exis ts ] view_name;
3.使用SQL语句查看视图
select 字段1 , 字段 2 ,......from view_name ;
4.查看所有视图
use information_schema;
select * from views \ G ;
4.注意事项:
1.视图中可以使用多个表
2.一个视图可以嵌套另一个视图
3.对视图数据进行添加 , 更新 和删除操作直接影响所引用表中的数据
4.当视图数据来自多个表时, 不允许添加和删除数据
5.使用视图修改数据会有许多限制, 一般在实际开放在视图仅用作查询
索引
1.索引
是一种有效组合数据的方式, 为快速查找到指定记录
2.作用:
1.大大提高数据库的检索速度
2.改善数据库性能
3.mysql索引按存储类型分类
B-树索引 : InnoDB, myisam均支持
哈希索引
4.常用索引类型
普通索引 唯一索引 主键索引 复合索引 全文索引 空间索引
5.创建索引:
create [UNIQUE| FULLTEXT | SPATIAL] INDEX index_name
ON table_name(column_name[length].....);
6.删除索引:
DROP INDEX index_name ON table_name;
删除表时, 该表的所有索引同时会被删除
7.创建索引的指导原则
1.按照下列标准选择建立索引的列
频繁搜索的列
经常用作查询选择的列
经常排列 , 分组的列
经常用作连接的列(主键/外键)
2.请不要使用下面的列创建索引
仅包含几个不同的列
表中仅包含几行
8.使用索引时注意事项
1.查询时减少使用*返回全部列 , 不要返回不需要的列
2.索引应该尽量小,在字节数小的列上建立索引
3.where子句中有多个条件表达式时, 包含索引列的表达式应置于其他条件表达式之前
4.避免在order by 子句中使用表达式
9.查看索引
show index from table_name;
table : 创建索引的表
Non_unique : 索引是否非唯一
Key_name: 索引的名称
Cloumn_name : 定义索引的列字段
Seq_in_index : 该列在索引中的位置
Null : 该列是否能为空值
Index_type : 索引类型
备份
10.为什么进行数据库备份
数据库故障
突然断电
病毒入侵+
误操作导致数据丢失
11.mysqldump (是DOS系统下的命令 ,在使用时无须进入mysql命令行,否则无法进行)
mysqldump 命令-----mysql一个常用的备份工具
将CREATE 和 INSERT INTO 语句保存到文本文件
属于DOS命令