事务定义
就是将一组SQL语句放在同一批次内去执行
如果一个sql语句出错,则改批次内的所有sql都将被取消执行
(1)原子性
一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作,这就是事务的原子性
(2)一致性
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。[例如两账户的和不变]
(3)隔离性
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
(4)持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事物的常用命令:
- 开始事物:begin或者start transaction
- 提交事务:commit
- 回滚事物 rollback
流程是:先关闭自动提交(set autocommit=0)开启事物(begin)运行代码 手动提交(commit)就可以同时进行多项操作 结束需要开启自动提交(set autocommit=1)否则,之后的操作都不会在表中显示,必须用手动提交才行 仅限于引擎类型为InnoDB,MyIsam不行
为什么需要视图
1.不同的人员关注不同的数据
2.保证信息的安全性
视图定义
- 视图是一张虚拟表(不是真实存在的)
- 一张表创建多个视图
3.视图不存放数据,但是展示数据
视图的作用
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.降低数据库的复杂程度
4.将多个物理数据库抽象为一个逻辑数据库
创建视图
create view v_shitu as select name,pwd from shitu;//创建视图
SELECT*from v_shitu;//查询视图
DROP VIEW v_shitu ;//删除视图
UPDATE v_shitu set name='xxxx';//修改视图:视图中的数据可以影响到原表中的数据,即使视图是虚拟的也可以
查询所有表和视图 show tables
查询视图 show table status where comment ='view'
索引
1.索引作用:
大大提高数据库的检索速度
改善数据库性能
- 拓展:索引可以提高查询的效率,但是会减低增删改的效率
- 索引的种类:普通索引 主键索引 全文索引 组合索引 全文索引
- alter table 表名 add primary key(主键索引的属性名)
- alter table 表名 add unique(唯一索引的属性名)
- alter table 表名 add index(普通索引的属性名)
- Alter table 表名add index(属性名,属性名)创建组合索引
- show index from 表名(查询所有的索引)
- drop index 索引的属性名 on 表名(删除索引)
alter table 表名 drop primary key(删除主键索引。