常用数据库操作(DML、序列等)

一、序列

1.1序列作用:

在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值

1.2创建序列:

CREATE SEQUENCE SEQ_EMP 
--序列最大最小值
MINVALUE 1
MAXVALUE 99999999
--序列起始值
START WITH 1
--序列每次增加值
INCREMENT BY 1------------------------
--序列不缓存
NOCACHE;

1.3序列的使用:

    SEQ_EMP.CURRVAL      --获取序列的当前值
    SEQ_EMP.NEXTVAL       --获取序列下一个值

1.4注意事项:

序列的产生不依赖于事务,如果一个DML语句从序列中获取了序列值并执行,但因为其他原因该DML语句被回滚,序列不会被回滚

二、DML操作

2.1插入操作(INSERT)

一次插入一条记录:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);

一次插入多条记录:INSERT INTO table (column1,column2...) SELECT col1,col2...FROM table2;

2.2修改操作

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

2.3删除操作

DELETE FROM 表名称 WHERE 列名称 = 值

三、事务简介

3.1 事务概念作用:


            事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。

作用:事务的主要任务是确保数据一致性。

例如:银行活期转定期,该事务包括三个操作 减少活期余额,开通定期账户,增加定期余额,必须保证事务的三部分操作全部完成,才能维护数据一致性。当某种操作导致其中一个操作失败,其他操作也会被撤销

3.2事务的ACID特性

原子性(Atomicity)
    把一个事务看成是一个不可分割的整体要执行都执行,要不执行都不执行
一致性(Consistency)
    在事务执行前后数据保存一致,如果两个以上数据表有关联,那么更新一个表的同时另一个表要一起更新
隔离性(Isolation)
    事务之间是隔离的,一个事务不会影响其他事务,同一事务多次操作也相互隔离
持久性(Transaction)
    一旦事务执行完毕,修改就会被持久的保存

3.3事务控制

COMMIT:       提交当前事务,使之前做的改变永久作用于数据库

ROLLBACK:    回滚当前事务,丢弃所有未决的数据改变

SAVEPOINT name: 在当前事务中标记保存点 

ROLLBACK TO name:  回滚当前事务到指定的保存点从而丢弃保存点后对数据库的任何改变

    DML A..
SAVEPOINT sp;
DML B..
ROLLBACK TO sp;
            --当执行ROLLBACK TO sp 语句时,DML B 操作被撤销

 

注意:DDL、DCL会自动提交事务,当写一个DML后再写一个DDL或DCL时,DML会因为他们而自动提交

 

如有问题多多指教!

 

你可能感兴趣的:(数据库)