更新数据表以及创建事务
更新数据表
更新数据表使用UPDATE
关键字,语法如下:
UPDATE 数据表名 SET 需要实现的更改 WHERE 搜索条件;
搜索条件不是必须的,当拥有WHERE关键字是,称为搜索型更新。
set
后面有两种格式:
UPDATE Product
SET sale_price = 500, purchase_price = 400
WHERE product_name = 'T恤衫';
或者
UPDATE Product
SET (sale_price, purchase_price) = (500, 400)
WHERE product_name = 'T恤衫';
推荐使用第一种方式,因为第二种方式并非是所有的DBMS都会支持的。
同时借助数据更新将数据制成为NULL,可以实现数据的清空。
当然,即使是更新数据的时候也必须遵守创建数据表时的约束,同时不能够清空主键。
创建事务
事务是什么
事务是需要在同一个处理单元中执行的一系列更新处理的集合。通过使用
事务,可以对数据库中的数据更新处理的提交和取消进行管理
事务的特点
事务的特点有四种:
- 原子性(Atommicity)
一件事务,其中的更新操作要么全部都会执行,要么全么都不会执行,所有的这些操作时一个整体,所以叫原子 - 一致性(Consistency)
遵循数据库中提前设置的约束 - 隔离性(Isolation)
指一个事务中的各个更新操作在事务结束以前,他们之间时相互透明的 - 持久性(Durability)
指的是数据的灾难恢复能力
事务的开始
实际上几乎所有的数据库都不需要事务开始指令。大部分情况下,事务在数据库建立连接以后就已经开始,并不需要手动指定事务开始的时机。
对于不指定事务开始,数据库可以有如下几种方式的事务提交方式:
- 自动提交类型
每一条SQL语句就是一个事务 - 手动提交类型
直到用户执行COMMIT或者ROLLBACK为止才算做一个事务
通常可以任意选择其中的一种模式。SQL Server,PostgreSQL和MySQL等默认使用1。甲骨文,DB2默认使用2。
同时对于一条语句一个事务的自动提交,执行DELETE
语句以后无法回滚,所以需要谨慎操作。
创建事务
不同的数据库有不同的创建事务(开始事务)方式,实际上标准的SQL并没有指定创建事务应该使用什么语句。一般的创建方式有:
- BEGIN TRANSACTION (Postgres等)
- START TRANSACTION (MySQL等)
- 无 (甲骨文等)
结束事务
- COMMIT 提交,提交以后不可回退
- ROLLBACk 回退