Oracle數據庫(九)—— 數據處理
阿新 • • 發佈:2018-08-04
back 一個 date insert 當前 語句 完整 con dml
(一)插入數據
方式一
insert語句語法
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
使用這種語法一次只能向表中插入一條數據
若按照列的順序賦值,可以不用寫列名
否則要寫列名,對於非空的列一定要復制
方式二:從其他的表拷貝數據
方式三:創建腳本(了解)
- 在SQL 語句中使用 & 變量指定列值0。
- & 變量放在VALUES子句中。
使用腳本,運行sql語句後,會出現彈框,所有彈框的值填好之後,這條數據會保存在數據庫中
(二)更新數據
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
-- 更新 114號員工的工作和工資使其與205號員工 相同
(1)先查詢114號與205號員工的工作和工資是否相同
(2)更新信息
(3)再次查詢114號與205號員工的工作和工資是否相同
-- 調整與employee_id 為200的員工job_id相同的,員工的department_id為employee_id為100的員工的department_id
更新中的數據完整性錯誤
department為55的部門不存在,所以無法修改,違反了完整性約束
(三)刪除數據
DELETE FROM table
[WHERE condition];
- 使用 WHERE 子句刪除指定的記錄
- 如果省略 WHERE 子句,則表中的全部數據將被刪除
在delete中使用子查詢
-- 刪除dept1部門名稱中含Public字符的部門id
刪除中的數據完整性錯誤
若存在其他的表使用要刪除的數據,則這條數據不能被刪除
(四)數據庫事務
事務:一組邏輯操作單元,使數據從一種狀態變換成另一種狀態
數據庫事務由以下部分組成:
- 一個或多個DML 語句
- 一個 DDL(Data Definition Language – 數據定義語言) 語句
- 一個 DCL(Data Control Language – 數據控制語言) 語句
以第一個 DML 語句的執行作為開始
以下面的其中之一作為結束:
- COMMIT 或 ROLLBACK 語句
- DDL 語句(自動提交)
- 用戶會話正常結束
- 系統異常終止
1、COMMIT和ROLLBACK
優點
- 確保數據完整性。
- 數據改變被提交之前預覽。
- 將邏輯上相關的操作分組。
2、保留點
- 使用 SAVEPOINT 語句在當前事務中創建保存點。
- 使用 ROLLBACK TO SAVEPOINT 語句回滾到創建的保存點。
3、事務進程
自動提交在以下情況中執行:
- DDL 語句。
- DCL 語句。
- 不使用 COMMIT 或 ROLLBACK 語句提交或回滾,正常結束會話。
會話異常結束或系統異常會導致自動回滾。
4、提交或回滾前的數據狀態
- 改變前的數據狀態是可以恢復的
- 執行 DML 操作的用戶可以通過 SELECT 語句查詢之前的修正
- 其他用戶不能看到當前用戶所做的改變,直到當前用戶結束事務。
- DML語句所涉及到的行被鎖定, 其他用戶不能操作。
5、提交後的數據狀態
- 數據的改變已經被保存到數據庫中。
- 改變前的數據已經丟失。
- 所有用戶可以看到結果。
- 鎖被釋放,其他用戶可以操作涉及到的數據。
- 所有保存點被釋放。
6、回滾後的數據狀態
- 數據改變被取消。
- 修改前的數據狀態被恢復。
- 鎖被釋放。
(五)總結
使用DML語句改變數據和事務控制
Oracle數據庫(九)—— 數據處理