数据库的其他功能
all与any:区间修饰条件
-
where 字段 [><] all/any (条件或子查询)
-
all表示所有
-
any表示任意
-
一般与where和><联用
视图
创建视图
-
create view 视图名 [字段别名] as select 语句
-
字段别名是为select查询中的字段起别名用的
创建或修改视图
- create or replace 视图名 [字段别名] as select 语句
- alter view 视图[字段别名] as select 语句
删除视图
- drop view 视图名
视图的创建依靠select语句
视图支持增删改查,但是对视图的修改会映射到原表中,反之亦然
- 增
- insert into 视图名 values (值n);
- 删
- delet from 视图名 where 条件
- 改
- update 视图名 set 字段=值, ... , 字段n=值n 条件
- 查
- select 字段 from 视图名 条件
- 视图可以作为正常表一样进行操作,例如连表查询
事务
通常 一些业务需要多条sql语句共同参与,
参与的sql语句形成一个执行整体,称之为事务
特性
- 原子性
- 事务是一组不可分割的单位,多条sql语句要么同时成功执行,要么执行都不成功
- 一致性
- 事务前后的数据完整性要保持一致(数据不丢失),
即数据库在某一时间点下,所有数据都符合所有约束,称为数据库的完整性的状态
- 事务前后的数据完整性要保持一致(数据不丢失),
- 隔离性
- 多个用户并发访问数据时,一个永和的事务不能被其他用户所干扰,多个并发事务之间的数据要隔离
- 即一个事务在操作数据时,数据库会上锁,不允许其他用户操作
- 持久性
- 一个事务一旦提交,那么他的改变就是永久的,无法还原
- 接下来即使数据库发生故障也不应该对其有任何影响
事物的使用
- begin;
- 开启一个事务
- 一系列的sql语句
- 对数据的增删改查
- commit;
- 确认无误,提交事务
- 或 rollback;
- 确认有误,回滚
- 回滚至begin状态的数据