程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE_數據處理

ORACLE_數據處理

編輯:Oracle教程

ORACLE_數據處理


ORACLE_數據處理

①數據操縱語言
DML(Data Manipulation Language – 數據操縱語言) 可以在下列條件下執行:
向表中插入數據
修改現存數據
刪除現存數據
查詢現存數據
事務是由完成若干項工作的DML語句組成的

②INSERT 語句語法

1.使用 INSERT 語句向表中插入數據。
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
使用這種語法一次只能向表中插入一條數據。

2.從其它表中拷貝數據
在 INSERT 語句中加入子查詢。

INSERT INTO table1 [(column [, column...])]
select [(column [, column...])]
from table2
where condition

不必書寫 VALUES 子句。
子查詢中的值列表應與 INSERT 子句中的列名對應

3.創建腳本
在SQL 語句中使用 & 變量指定列值。
& 變量放在VALUES子句中。


③UPDATE 語句語法
1.使用 UPDATE 語句更新數據。
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];

可以一次更新多條數據。
使用 WHERE 子句指定需要更新的數據
如果省略 WHERE 子句,則表中的所有數據都將被更新

2.在 UPDATE 語句中使用子查詢
在 UPDATE 中使用子查詢,使更新基於另一個表中的數據。
UPDATE copy_emp
SET department_id = (SELECT department_id
FROM employees
WHERE employee_id = 100)
WHERE job_id = (SELECT job_id
FROM employees
WHERE employee_id = 200);
3.更新中的數據完整性錯誤
UPDATE employees
SET department_id = 55
WHERE department_id = 110;

department_id是引用外鍵,但是55不存在於引用表中,違反外鍵約束

④DELETE 語句
1.使用 DELETE 語句從表中刪除數據。
DELETE FROM table
[WHERE condition];
使用 WHERE 子句刪除指定的記錄。
如果省略 WHERE 子句,則表中的全部數據將被刪除

2.在 DELETE 中使用子查詢
DELETE FROM emp1
WHERE department_id =
(SELECT department_id
FROM dept1
WHERE department_name LIKE '%Public%');

3.刪除中的數據完整性錯誤
DELETE FROM departments
WHERE department_id = 60;

注:department_id = 60 已經被引用,故不能刪除

⑤數據庫事務
事務:一組邏輯操作單元,使數據從一種狀態變換到另一種狀態。
1.數據庫事務由以下的部分組成:
一個或多個DML 語句
一個 DDL(Data Definition Language – 數據定義語言) 語句
一個 DCL(Data Control Language – 數據控制語言) 語句

2.開始與結束
以第一個 DML 語句的執行作為開始

以下面的其中之一作為結束:
COMMIT 或 ROLLBACK 語句
DDL 語句(自動提交)
用戶會話正常結束
系統異常終止

3.COMMIT和ROLLBACK語句的優點
使用COMMIT 和 ROLLBACK語句,我們可以:
確保數據完整性。
數據改變被提交之前預覽。
將邏輯上相關的操作分組。

4.回滾到保留點
使用 SAVEPOINT 語句在當前事務中創建保存點。
使用 ROLLBACK TO SAVEPOINT 語句回滾到創建的保存點。

5.事務進程
自動提交在以下情況中執行:
DDL 語句。
DCL 語句。
不使用 COMMIT 或 ROLLBACK 語句提交或回滾,正常結束會話。
會話異常結束或系統異常會導致自動回滾。

6.提交或回滾前的數據狀態
改變前的數據狀態是可以恢復的
執行 DML 操作的用戶可以通過 SELECT 語句查詢之前的修正
其他用戶不能看到當前用戶所做的改變,直到當前用戶結束事務。
DML語句所涉及到的行被鎖定, 其他用戶不能操作。

7.提交後的數據狀態
數據的改變已經被保存到數據庫中。
改變前的數據已經丟失。
所有用戶可以看到結果。
鎖被釋放,其他用戶可以操作涉及到的數據。
所有保存點被釋放。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved