1、 事务
概念:
事务是作为单个逻辑单元执行的一系列操作,多个操作作为一个整体向系统提交,要么都执行、要么都不执行,它是一个不可分割的工作逻辑单元。
特性:
原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分割的(原子的),要么都执行,要么都不执行
一致性(Consistency):当事务完成是,数据必须处于一致状态
隔离性(Isolation):并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务
持久性(Durability):事务完成后,它对数据库的修改被永久保存
语法:
开始事务
begin;
或
start transaction;
提交事务
commit;
回滚(撤销)事务
rollback;
2、 JDBC中使用事务
当Jdbc程序向数据库获得一个Connection对象是,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,可使用下列的JDBC控制语句:
- Connection.setAutoCommit(false);//开启事务(start transaction)
- Connection.rollback();//回滚事务(rollback)
- Connection.commit;//提交事务(commit)
3、视图
概念:
视图是一张虚拟表,表示一张表的部分数据或多种表的综合数据,其结构和数据是建立在对表的查询基础上;视图中不存放数据,数据存放在视图所引用的原始表中。
用途:
- 筛选表中的行
- 防止未经许可的用户访问敏感数据
- 降低数据库的复杂程度
- 将多个物理数据库抽象为一个逻辑数据库
创建视图:
create view view_name as <select 语句>;
删除视图:
drop view [if exists] view_name;
查看视图:
select 字段1,字段2,······ from view_name;
所有的视图是否都可以更新?为什么?
不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因此有些视图的更新不能唯一有意义地转换成相应基本表的更新,所以,并不是所有的视图都是可更新的。
注意:使用视图修改会有许多限制,一般在实际开发中视图仅用作查询
4、索引
概念:
索引是一种有效组合数据的方式
作用、优缺点:
索引是一种特殊的查询表,数据库的搜索可以利用他加速对数据的检索。它类似于现实生活中的目录,不需要查询整本书的内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
创建索引的指导原则:
- 频繁搜索的列
- 经常用作查询选择的列
- 经常排序、分组的列
- 经常用作连接的列(主键/外键)
5、表和视图的关系
视图其实就是一条查询SQL语句,用于显示一个或多个其他视图中的相关数据。表就是关系数据库中手机存储数据用的。