1. 程式人生 > >常用資料庫操作(DML、序列等)

常用資料庫操作(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會因為他們而自動提交

 

如有問題多多指教!