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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

7-處理數(shù)據(jù)處理數(shù)據(jù)7-處理數(shù)據(jù)課程目標(biāo)學(xué)完本課后,應(yīng)能完成以下工作:描述各個(gè)數(shù)據(jù)操縱語(yǔ)言(DML)語(yǔ)句在表中插入行更新表中的行從表中刪除行控制事務(wù)處理7-處理數(shù)據(jù)數(shù)據(jù)操縱語(yǔ)言在進(jìn)行以下操作時(shí),會(huì)執(zhí)行DML語(yǔ)句:在表中添加新行修改表中現(xiàn)有的行從表中刪除現(xiàn)有的行事務(wù)處理由DML語(yǔ)句的集合組成,這些語(yǔ)句構(gòu)成一個(gè)邏輯工作單元。7-處理數(shù)據(jù)在表中添加新行DEPARTMENTS在

DEPARTMENTS

表中插入新行新行7-處理數(shù)據(jù)INSERT

語(yǔ)句語(yǔ)法使用INSERT

語(yǔ)句在表中添加新行:

使用此語(yǔ)法一次只能插入一行。INSERTINTO table[(column[,column...])]VALUES (value[,value...]);7-處理數(shù)據(jù)插入新行插入一個(gè)新行,此行的每一列都含有值按照表中列的默認(rèn)順序列出這些值(可選)在INSERT

子句中列出列

將字符和日期值包含在單引號(hào)中INSERTINTOdepartments(department_id,department_name,manager_id,location_id)VALUES(70,'PublicRelations',100,1700);1rowcreated.7-處理數(shù)據(jù)插入帶有空值的行隱式方法:在列的列表中省略該列顯式方法:在

VALUES

子句中指定

NULL

關(guān)鍵字INSERTINTO departments(department_id,department_name)VALUES (30,'Purchasing');1rowcreated.INSERTINTO departmentsVALUES (100,'Finance',NULL,NULL);1rowcreated.7-處理數(shù)據(jù)插入特殊值SYSDATE

函數(shù)記錄當(dāng)前日期和時(shí)間INSERTINTOemployees(employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id)VALUES (113,'Louis','Popp','LPOPP','515.124.4567',SYSDATE,'AC_ACCOUNT',6900,NULL,205,100);1rowcreated.7-處理數(shù)據(jù)插入特定日期值添加新雇員

確認(rèn)添加的內(nèi)容INSERTINTOemployeesVALUES(114,'Den','Raphealy','DRAPHEAL','515.127.4561',TO_DATE('FEB3,1999','MONDD,YYYY'),'AC_ACCOUNT',11000,NULL,100,30);1rowcreated.7-處理數(shù)據(jù)INSERTINTOdepartments

(department_id,department_name,location_id)

VALUES(&department_id,'&department_name',&location);

創(chuàng)建腳本在SQL語(yǔ)句中使用&替代來(lái)提示用戶輸入值&是變量值的占位符1rowcreated.7-處理數(shù)據(jù)從其它表中復(fù)制行編寫(xiě)帶有子查詢的INSERT

語(yǔ)句:

不要使用VALUES

子句。使INSERT

子句中的列數(shù)與子查詢中的列數(shù)匹配。INSERTINTOsales_reps(id,name,salary,commission_pct)SELECTemployee_id,last_name,salary,commission_pctFROMemployeesWHEREjob_idLIKE'%REP%';4rowscreated.7-處理數(shù)據(jù)更改表中的數(shù)據(jù)EMPLOYEES

更新

EMPLOYEES

表中的行:7-處理數(shù)據(jù)UPDATE

語(yǔ)句語(yǔ)法

使用

UPDATE

語(yǔ)句修改現(xiàn)有的行:

如果需要,可以一次更新多行。

UPDATE tableSET column=value[,column=value,...][WHERE condition];7-處理數(shù)據(jù)更新表中的行如果指定了WHERE

子句,則可以修改特定的一行或

多行:

如果省略WHERE

子句,則會(huì)修改表中的所有行:UPDATEemployeesSETdepartment_id=70WHEREemployee_id=113;1rowupdated.UPDATE copy_empSET department_id=110;22rowsupdated.7-處理數(shù)據(jù)使用子查詢更新兩個(gè)列更新雇員114的職務(wù)和薪金,使其與雇員205的職務(wù)和薪金相匹配。UPDATEemployeesSETjob_id=(SELECTjob_idFROMemployeesWHEREemployee_id=205),salary=(SELECTsalaryFROMemployeesWHEREemployee_id=205)WHEREemployee_id=114;1rowupdated.7-處理數(shù)據(jù)根據(jù)另一個(gè)表更新行根據(jù)另一個(gè)表中的值,在UPDATE

語(yǔ)句中使用子查詢來(lái)更新表中的行:UPDATEcopy_empSETdepartment_id=(SELECTdepartment_idFROMemployeesWHEREemployee_id=100)WHEREjob_id=(SELECTjob_idFROMemployeesWHEREemployee_id=200);1rowupdated.7-處理數(shù)據(jù)從

DEPARTMENTS

表中刪除一行:

從表中刪除行DEPARTMENTS

7-處理數(shù)據(jù)DELETE

語(yǔ)句使用DELETE

語(yǔ)句,可以從表中刪除現(xiàn)有的行:DELETE[FROM] table

[WHERE condition];7-處理數(shù)據(jù)從表中刪除行如果指定WHERE

子句,則可以刪除特定的行:

如果省略WHERE

子句,則會(huì)刪除表中的所有行:DELETEFROMdepartmentsWHEREdepartment_name='Finance';1rowdeleted.DELETEFROMcopy_emp;22rowsdeleted.7-處理數(shù)據(jù)根據(jù)另一個(gè)表刪除行根據(jù)另一個(gè)表中的值在DELETE

語(yǔ)句中使用子查詢來(lái)刪除表中的行:DELETEFROMemployeesWHEREdepartment_id=(SELECTdepartment_idFROMdepartmentsWHEREdepartment_nameLIKE'%Public%');1rowdeleted.7-處理數(shù)據(jù)TRUNCATE

語(yǔ)句從表中刪除所有行,使表為空并保留表結(jié)構(gòu)不變是數(shù)據(jù)定義語(yǔ)言(DDL)語(yǔ)句而不是DML語(yǔ)句,無(wú)法輕易地將其還原。語(yǔ)法:

示例:TRUNCATETABLEtable_name;TRUNCATETABLEcopy_emp;7-處理數(shù)據(jù)在INSERT

語(yǔ)句中使用子查詢INSERTINTO(SELECTemployee_id,last_name,email,hire_date,job_id,salary,department_idFROMemployeesWHEREdepartment_id=50)VALUES(99999,'Taylor','DTAYLOR',TO_DATE('07-JUN-99','DD-MON-RR'),'ST_CLERK',5000,50);1rowcreated.7-處理數(shù)據(jù)在INSERT

語(yǔ)句中使用子查詢驗(yàn)證結(jié)果:SELECTemployee_id,last_name,email,hire_date,job_id,salary,department_idFROMemployeesWHEREdepartment_id=50;7-處理數(shù)據(jù)數(shù)據(jù)庫(kù)事務(wù)處理數(shù)據(jù)庫(kù)事務(wù)處理由以下語(yǔ)句之一組成:對(duì)數(shù)據(jù)進(jìn)行一次一致更改的DML語(yǔ)句一條DDL語(yǔ)句一條數(shù)據(jù)控制語(yǔ)言(DCL)語(yǔ)句7-處理數(shù)據(jù)數(shù)據(jù)庫(kù)事務(wù)處理在執(zhí)行第一條DMLSQL語(yǔ)句時(shí)開(kāi)始在發(fā)生下列事件之一時(shí)結(jié)束:發(fā)出COMMIT

或ROLLBACK

語(yǔ)句執(zhí)行DDL或DCL語(yǔ)句(自動(dòng)提交)用戶退出iSQL*Plus系統(tǒng)崩潰7-處理數(shù)據(jù)COMMIT

和ROLLBACK

語(yǔ)句的優(yōu)點(diǎn)使用COMMIT

和ROLLBACK

語(yǔ)句,您可以:確保數(shù)據(jù)的一致性在使更改變成永久性更改之前預(yù)覽數(shù)據(jù)更改按邏輯關(guān)系對(duì)相關(guān)操作進(jìn)行分組7-處理數(shù)據(jù)控制事務(wù)處理SAVEPOINT

B

SAVEPOINT

A

DELETE

INSERT

UPDATE

INSERT

COMMIT

時(shí)間

事務(wù)處理

ROLLBACK

toSAVEPOINTB

ROLLBACK

toSAVEPOINTA

ROLLBACK

7-處理數(shù)據(jù)將更改回退到某個(gè)標(biāo)記使用SAVEPOINT

語(yǔ)句在當(dāng)前事務(wù)處理中創(chuàng)建一個(gè)標(biāo)記使用ROLLBACKTOSAVEPOINT

語(yǔ)句回退到該標(biāo)記UPDATE...SAVEPOINTupdate_done;Savepointcreated.INSERT...ROLLBACKTOupdate_done;Rollbackcomplete.7-處理數(shù)據(jù)隱式事務(wù)處理在下列情況下將發(fā)生自動(dòng)提交:發(fā)出DDL語(yǔ)句發(fā)出DCL語(yǔ)句從iSQL*Plus中正常退出,而沒(méi)有顯式發(fā)出COMMIT

或ROLLBACK

語(yǔ)句在iSQL*Plus異常終止或出現(xiàn)系統(tǒng)故障的情況下會(huì)發(fā)生自動(dòng)回退。7-處理數(shù)據(jù)7-處理數(shù)據(jù)執(zhí)行COMMIT

或ROLLBACK

操作之前的數(shù)據(jù)狀態(tài)可以將數(shù)據(jù)還原到以前的狀態(tài)。當(dāng)前用戶可以使用SELECT

語(yǔ)句查看DML操作的結(jié)果。其他用戶不能查看當(dāng)前用戶的DML語(yǔ)句的結(jié)果。受影響的行將被鎖定,其他用戶不能更改受影響的行中的數(shù)據(jù)。7-處理數(shù)據(jù)執(zhí)行COMMIT

操作之后的數(shù)據(jù)狀態(tài)數(shù)據(jù)庫(kù)中的數(shù)據(jù)更改將變成永久性的更改。以前的數(shù)據(jù)狀態(tài)將永久丟失。所有用戶都可以查看結(jié)果。受影響的行上的鎖將被釋放,其他用戶可以對(duì)這些行進(jìn)行處理。所有保存點(diǎn)都將被清除。7-處理數(shù)據(jù)提交數(shù)據(jù)進(jìn)行更改:

提交更改:DELETEFROMemployees

WHEREemployee_id=99999;

1rowdeleted.

INSERTINTOdepartments

VALUES(290,'CorporateTax',NULL,1700);

1rowcreated.

COMMIT;Commitcomplete.

7-處理數(shù)據(jù)執(zhí)行ROLLBACK

操作之后的數(shù)據(jù)狀態(tài)使用ROLLBACK

語(yǔ)句放棄所有待定更改之后,會(huì)有如下結(jié)果:數(shù)據(jù)更改將被還原數(shù)據(jù)將還原到以前的狀態(tài)受影響的行上的鎖將被釋放DELETEFROMcopy_emp;20rowsdeleted.ROLLBACK;Rollbackcomplete.7-處理數(shù)據(jù)執(zhí)行ROLLBACK

操作之后的數(shù)據(jù)狀態(tài)DELETEFROMtest;

25,000rowsdeleted.

ROLLBACK;

Rollbackcomplete.

DELETEFROMtestWHEREid=100;

1rowdeleted.

SELECT*FROMtestWHEREid=100;

Norowsselected.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論