處理數(shù)據(jù)課件_第1頁
處理數(shù)據(jù)課件_第2頁
處理數(shù)據(jù)課件_第3頁
處理數(shù)據(jù)課件_第4頁
處理數(shù)據(jù)課件_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、處理數(shù)據(jù)PPT課件處理數(shù)據(jù)處理數(shù)據(jù)PPT課件目標通過本章學習,您將可以: 使用 DML 語句 向表中插入數(shù)據(jù) 更新表中數(shù)據(jù) 從表中刪除數(shù)據(jù) 控制事務處理數(shù)據(jù)PPT課件數(shù)據(jù)操作語言 DML 可以在下列條件下執(zhí)行: 向表中插入數(shù)據(jù) 修改現(xiàn)存數(shù)據(jù) 刪除現(xiàn)存數(shù)據(jù) 事務是由完成若干項工作的DML語句組成的。處理數(shù)據(jù)PPT課件插入數(shù)據(jù)DEPARTMENTS New rowinsert a new row into the DEPARMENTS table處理數(shù)據(jù)PPT課件INSERT 語句語法 使用 INSERT 語句向表中插入數(shù)據(jù)。 使用這種語法一次只能向表中插入一條數(shù)據(jù)。INSERT INTOtabl

2、e (column , column.)VALUES(value , value.);處理數(shù)據(jù)PPT課件INSERT INTO departments(department_id, department_name, manager_id, location_id)VALUES (70, Public Relations, 100, 1700);1 row created.插入數(shù)據(jù) 為每一列添加一個新值。 按列的默認順序列出各個列的值。 在 INSERT 子句中隨意列出列名和他們的值。 字符和日期型數(shù)據(jù)應包含在單引號中。處理數(shù)據(jù)PPT課件INSERT INTOdepartmentsVALUES(

3、100, Finance, NULL, NULL);INSERT INTOdepartments (department_id, department_name )VALUES(30, Purchasing);向表中插入空值 隱式方式: 在列名表中省略該列的值。顯示方式顯示方式: 在在VALUES 子句中指定空值。子句中指定空值。處理數(shù)據(jù)PPT課件INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, ma

4、nager_id, department_id)VALUES (113, Louis, Popp, LPOPP, 515.124.4567, SYSDATE, AC_ACCOUNT, 6900, NULL, 205, 100);插入指定的值SYSDATE 記錄當前系統(tǒng)的日期和時間。處理數(shù)據(jù)PPT課件INSERT INTO employeesVALUES (114, Den, Raphealy, DRAPHEAL, 515.127.4561, TO_DATE(FEB 3, 1999, MON DD, YYYY), AC_ACCOUNT, 11000, NULL, 100, 30);插入指定的值

5、加入新員工 檢查插入的數(shù)據(jù)處理數(shù)據(jù)PPT課件INSERT INTO departments (department_id, department_name, location_id)VALUES (&department_id, &department_name,&location);創(chuàng)建腳本 在SQL 語句中使用& 變量指定列值。 & 變量放在VALUES子句中。處理數(shù)據(jù)PPT課件 在 INSERT 語句中加入子查詢。 不必書寫 VALUES 子句。 子查詢中的值列表應于 INSERT 子句中的列名對應。INSERT INTO sales_reps(i

6、d, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE %REP%;從其它表中拷貝數(shù)據(jù)處理數(shù)據(jù)PPT課件更新數(shù)據(jù)EMPLOYEESUpdate rows in the EMPLOYEES table.處理數(shù)據(jù)PPT課件UPDATE 語句語法 使用 UPDATE 語句更新數(shù)據(jù)。 可以一次更新多條數(shù)據(jù)。UPDATEtableSETcolumn = value , column = value, .WHERE cond

7、ition;處理數(shù)據(jù)PPT課件UPDATE employeesSET department_id = 70WHERE employee_id = 113; 使用 WHERE 子句指定需要更新的數(shù)據(jù)。 如果省略WHERE子句,則表中的所有數(shù)據(jù)都將被更新。更新數(shù)據(jù)UPDATE copy_empSET department_id = 110;處理數(shù)據(jù)PPT課件UPDATE employeesSET job_id = (SELECT job_id FROM employees WHERE employee_id = 205), salary = (SELECT salary FROM employee

8、s WHERE employee_id = 205) WHERE employee_id = 114;在UPDATE語句中使用子查詢更新 114號員工的工作和工資使其與 205號員工相同。處理數(shù)據(jù)PPT課件UPDATE copy_empSET department_id = (SELECT department_id FROM employees WHERE employee_id = 100)WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 200);在UPDATE語句中使用子查詢在 UPDATE 中使用子查詢,

9、使更新基于另一個表中的數(shù)據(jù)。 處理數(shù)據(jù)PPT課件UPDATE employees *ERROR at line 1:ORA-02291: integrity constraint (HR.EMP_DEPT_FK) violated - parent key not foundUPDATE employeesSET department_id = 55WHERE department_id = 110;更新中的數(shù)據(jù)完整性錯誤Department number 55 does not exist處理數(shù)據(jù)PPT課件從表從表DEPARTMENTS 中刪除一條記錄。中刪除一條記錄。刪除數(shù)據(jù) DEPART

10、MENTS 處理數(shù)據(jù)PPT課件DELETE 語句使用 DELETE 語句從表中刪除數(shù)據(jù)。DELETE FROM tableWHERE condition;處理數(shù)據(jù)PPT課件 使用WHERE 子句指定刪除的記錄。 如果省略WHERE子句,則表中的全部數(shù)據(jù)將被刪除。刪除數(shù)據(jù) DELETE FROM departments WHERE department_name = Finance;DELETE FROM copy_emp;處理數(shù)據(jù)PPT課件DELETE FROM employeesWHERE department_id = (SELECT department_id FROM departme

11、nts WHERE department_name LIKE %Public%);在 DELETE 中使用子查詢在 DELETE 中使用子查詢,使刪除基于另一個表中的數(shù)據(jù)。 處理數(shù)據(jù)PPT課件刪除中的數(shù)據(jù)完整性錯誤DELETE FROM departmentsWHERE department_id = 60;DELETE FROM departments *ERROR at line 1:ORA-02292: integrity constraint (HR.EMP_DEPT_FK) violated - child record foundYou cannot delete a row th

12、at contains a primary key that is used as a foreign key in another table.處理數(shù)據(jù)PPT課件數(shù)據(jù)庫事務數(shù)據(jù)庫事務由以下的部分組成: 一個或多個DML 語句 一個 DDL 語句 一個 DCL 語句處理數(shù)據(jù)PPT課件數(shù)據(jù)庫事務 以第一個 DML 語句的執(zhí)行作為開始 以下面的其中之一作為結(jié)束: COMMIT 或 ROLLBACK 語句 DDL 或 DCL 語句(自動提交) 用戶會話正常結(jié)束 系統(tǒng)異常終止處理數(shù)據(jù)PPT課件COMMIT和ROLLBACK語句的優(yōu)點使用COMMIT 和 ROLLBACK語句,我們可以: 確保數(shù)據(jù)完整性

13、。 數(shù)據(jù)改變被提交之前預覽。 將邏輯上相關的操作分組。處理數(shù)據(jù)PPT課件UPDATE.SAVEPOINT update_done;INSERT.ROLLBACK TO update_done;回滾到保留點 使用 SAVEPOINT 語句在當前事務中創(chuàng)建保存點。 使用 ROLLBACK TO SAVEPOINT 語句回滾到創(chuàng)建的保存點。處理數(shù)據(jù)PPT課件 自動提交在以下情況中執(zhí)行: DDL 語句。 DCL 語句。 不使用 COMMIT 或 ROLLBACK 語句提交或回滾,正常結(jié)束會話。 會話異常結(jié)束或系統(tǒng)異常會導致自動回滾。事務進程處理數(shù)據(jù)PPT課件提交或回滾前的數(shù)據(jù)狀態(tài) 改變前的數(shù)據(jù)狀態(tài)是可

14、以恢復的 執(zhí)行 DML 操作的用戶可以通過 SELECT 語句查詢之前的修正 其他用戶不能看到當前用戶所做的改變,直到當前用戶結(jié)束事務。 DML語句所涉及到的行被鎖定, 其他用戶不能操作。處理數(shù)據(jù)PPT課件提交后的數(shù)據(jù)狀態(tài) 數(shù)據(jù)的改變已經(jīng)被保存到數(shù)據(jù)庫中。 改變前的數(shù)據(jù)已經(jīng)丟失。 所有用戶可以看到結(jié)果。 鎖被釋放, 其他用戶可以操作涉及到的數(shù)據(jù)。 所有保存點被釋放。處理數(shù)據(jù)PPT課件COMMIT; 改變數(shù)據(jù) 提交改變DELETE FROM employeesINSERT INTO departments VALUES (290, Corporate Tax, NULL, 1700);提交數(shù)據(jù)處

15、理數(shù)據(jù)PPT課件數(shù)據(jù)回滾后的狀態(tài)使用 ROLLBACK 語句可使數(shù)據(jù)變化失效: 數(shù)據(jù)改變被取消。 修改前的數(shù)據(jù)狀態(tài)可以被恢復。 鎖被釋放。DELETE FROM copy_emp;ROLLBACK;處理數(shù)據(jù)PPT課件讀一致性 讀一致性為數(shù)據(jù)提供一個一致的視圖。 一個用戶的對數(shù)據(jù)的改變在事務中之之前不會影響其他用戶的讀取。處理數(shù)據(jù)PPT課件SELECT *FROM userA.employees;讀一致性UPDATE employeesSET salary = 7000WHERE last_name = Goyal;數(shù)據(jù)塊數(shù)據(jù)塊回滾段回滾段改變和未改變改變和未改變的數(shù)據(jù)的數(shù)據(jù)改變之前的改變之前的數(shù)據(jù)數(shù)據(jù)User AUser B 快照快照處理數(shù)據(jù)PPT課件SELECT salary FROM employeesWHERE last_name=King;24000UPDATE employeesSET salary=salary+10000WHERE last_name=King;24000COMMIT;34000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論