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命令

posted @ 2020-06-16 18:31  樱桃小丸子!!  阅读(230)  评论(0编辑  收藏  举报