?
修改表的内容和事务性
一、使用insert添加行
**添加行
insert into table_name(id,name,address)values(6,'john','北京')
**忽略列的列表添加
insert into table_name values(6,'john','北京')
**为列指定空值:
insert into table_name(id,name,address)values(6,'john',null);前提是该字段可为空;
二、使用update修改行
?
三、使用delete删除行
?
四、数据库的完整性
在执行DML(insert update,delete)等操作时,数据库会维护自身结构的完整性,主要有一下约束
**主键约束
**外键约束
五、使用MERGE合并行
merge可以将一个表中的行合并到另一个表中
如:
merge into product p using order p2 on (p.id=p2.id)
when matched then
update set p.name =p2.name p.price=p2.price
when not matched then
insert (p.id ,p.name,p.price) values(p2.id,p2.name,p2.price);
注意:
merge into 指明了合并的操作的目标表
using....into :指定一个表连接
when matched then:指定当一行满足using ....on 子句的条件时执行update操作,不满足时,执行insert操作
六、数据库事务
事务是一组不可分割的SQL语句,在执行时,应该做为一个整体永久性的修改数据内容,或作为一个整体永久性的取消修改数据库内容
如:银行转账的例子
事务的提交和回滚
**提交:commit语句
**回滚:rollback
事务的开始与结束
事务是分割数据库活动的逻辑工作单元,既有起点,又有终点
开始:
*连接到数据库,并执行一条DML语句
*前一个事务结束后,输入了另一条DML语句
结束:
执行commit或rollback
执行一条DDL语句.如create table语句,这种情况会自动执行commti
执行一条DCL语句
断开与数据库连接
保存点
保存点可在事务的任何地方设置,可将修改回滚到保存点处,一般用于很大的事务,使用savepoint sava1;定义,save1为保存点名
如回滚到保存点处:rollback to savepoint save1;
*事务的ACID特性
事务的4个基本特性:
**原子性:事务必须成组地提交或回滚,是一个不可分割的工作单元
**一致性:数据库的状态必须保持一致;无论事务是开始还是结束