SQLite基础学习 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

说明

  SQLite 的事务是一个对数据库执行工作的工作单元。
  可以把许多的 SQLite 查询联合成一组,把所有这些放在一起作为事务的一部分进行执行。

事务的4个属性(ACID):

(1)原子性(Atomicity):确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。
(2)一致性(Consistency):确保数据库在成功提交的事务上正确地改变状态。
(3)隔离性(Isolation):使事务操作相互独立和透明。
(4)持久性(Durability):确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。

事务控制:

  1. BEGIN TRANSACTION:开始事务处理。
  2. COMMIT:保存更改,或者可以使用 END TRANSACTION 命令,用于把事务调用的更改保存到数据库中的事务命令。
  3. ROLLBACK:回滚所做的更改,相当于没有操作,回到begin之前。

实例:

  假设有如下表student:

sqlite> select  * from student;
ID          NAME        AGE         ADDRESS
----------  ----------  ----------  ----------
1           xiaoming    18          shenzhen
2           xiaohua     18          beijing
3           mingming    19          shanghai
4           xiaogang    20          hangzhou
5           honghong    17          shenzhen
6           liangliang  21          wuhan
7           tingting    23          shenzhen
sqlite>

  事务开始:

sqlite> begin;

  这里进行操作,比如删除一条记录:

sqlite> delete from student where ID =2;

  这里进行回滚,回到begin之前:可以看到相当于没操作。

sqlite> rollback;
sqlite> select  * from student;
ID          NAME        AGE         ADDRESS
----------  ----------  ----------  ----------
1           xiaoming    18          shenzhen
2           xiaohua     18          beijing
3           mingming    19          shanghai
4           xiaogang    20          hangzhou
5           honghong    17          shenzhen
6           liangliang  21          wuhan
7           tingting    23          shenzhen

  假设提交了:ID为2的人被删除了。

sqlite> begin;
sqlite> delete from student where ID =2;
sqlite> commit;
sqlite> select  * from student;
ID          NAME        AGE         ADDRESS
----------  ----------  ----------  ----------
1           xiaoming    18          shenzhen
3           mingming    19          shanghai
4           xiaogang    20          hangzhou
5           honghong    17          shenzhen
6           liangliang  21          wuhan
7           tingting    23          shenzhen
sqlite>
  1. 请仿照例子,更新ID为3的人ADDRESS到 guangdong,分别进行提交和回滚操作。