0目录
第六章 MySQL拓展
1.MySQL拓展
1.1 事务定义:事务就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所有sql都将被取消执行。 |
1.2 事务ACID原则 (1)原子性 一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作,这就是事务的原子性 (2)一致性 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。[例如两账户的和不变] (3)隔离性 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。 (4)持久性 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。 |
1.3 事务实战-准备环境 由于mysql是默认自动提交事务的,所以在研究事务的时候需要首先关闭自动提交模式 SET AUTOCOMMIT = 0; //关闭自动提交模式 SET AUTOCOMMIT = 1; //开启自动提交模式 |
1.4 事务实战-常用命令 (1)开始事务:BEGIN或START TRANSACTION (2)提交事务:COMMIT (3)回滚(撤销)事务:ROLLBACK |
1.5 Innodb引擎之事务提交 |
1.6 Innodb引擎之事务回滚 |
1.7 MyISAM引擎之事务:关闭后任然会自动提交 |
1.8 为什么需要MySQL视图: (1)不同的维护人员关注不同的字段 (2)保证信息的安全 |
1.9 视图定义: (1)视图是一张虚拟表(不是真实存在的):表示一张表的部分数据或多张表的综合数据;其结构和数据是建立在对表的查询基础上 (2)视图中不存放数据:数据存放在视图所引用的原始表中,但是视图展示定义 (3)一个原始表,根据不同用户的不同需求,可以创建多个不同的视图 |
1.10 视图的作用 筛选表中的行 防止未经许可的用户访问敏感数据 降低数据库的复杂程度 将多个物理数据库抽象为一个逻辑数据库 |
1.11 创建视图 (1)创建视图:CREATE VIEW 视图名 AS SELECT 字段 from 表名; (2)查看视图:SELECT 字段1, 字段2, …… FROM 视图名; (3)删除视图:DROP VIEW [IF EXISTS] 视图名; |
1.12 修改视图:会同时修改原始表中的值 update 视图名 set 字段名=字段值 where 条件表达式; |
1.13 查看视图列表: (1)查看所有视图和表:show tables; (2)只查看所有的视图:show table status where comment='view'; |
1.14 计算机的索引: (1)索引定义:是一种有效组合数据的方式,为快速查找到指定记录 (2)索引作用:大大提高数据库的检索速度,改善数据库性能 拓展:索引可以提高查询的效率,但会降低增删改的效率 |
1.15 索引种类: (1)普通索引normal (2)唯一索引unique (3)主键索引primary (4)全文索引full text (5)组合索引 |
1.16 索引实战 (1)创建索引: 主键索引:ALTER TABLE 表名 ADD PRIMARY KEY ( 字段名 ) 唯一索引:ALTER TABLE 表名 ADD UNIQUE ( 字段名 ) 普通索引:ALTER TABLE 表名 ADD INDEX ( 字段名 ) 组合索引:ALTER TABLE 表名 ADD INDEX ( 字段名1,字段名2 ) (2)查看索引:show index from 表名 (3)删除索引: 删除主键索引:alter table 表名 drop primary key; 删除索引:drop index 索引字段名 on 表名; |
拓展:备份和恢复备份 |