達(dá)內(nèi)培訓(xùn)java oracle day了解事務(wù)及相關(guān)的命令_第1頁(yè)
達(dá)內(nèi)培訓(xùn)java oracle day了解事務(wù)及相關(guān)的命令_第2頁(yè)
達(dá)內(nèi)培訓(xùn)java oracle day了解事務(wù)及相關(guān)的命令_第3頁(yè)
達(dá)內(nèi)培訓(xùn)java oracle day了解事務(wù)及相關(guān)的命令_第4頁(yè)
達(dá)內(nèi)培訓(xùn)java oracle day了解事務(wù)及相關(guān)的命令_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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)介

等值連接(on后面的條件是“=”等于 非等值連接(on后面的條件丌是等值操作 SQL語(yǔ)句的種 Emp表、Dept表、Salgrade表數(shù)據(jù)結(jié) DML操作 insert(插入數(shù)據(jù)) 使用方法:插入全部列值時(shí),丌用寫列 表 rownum關(guān)鍵字 update(更新數(shù)據(jù)) delete(刪除數(shù)據(jù)) rowid關(guān)鍵字刪除重復(fù)數(shù)據(jù)(較簡(jiǎn)單,性能高 Transaction(事務(wù)) 事務(wù)的開始和終止(事務(wù)邊界 create(建表) drop(刪除結(jié)構(gòu)和全部的表數(shù)據(jù)) 和表相關(guān)的數(shù)據(jù)字典 truncate(截取,截?cái)? alter(修改結(jié)構(gòu)) add關(guān)鍵 rename關(guān)鍵 drop 執(zhí)行數(shù)據(jù)庫(kù)(script)文件*.sql 數(shù)據(jù)控制語(yǔ)言 知識(shí)點(diǎn)回內(nèi)連接語(yǔ)法:t1joint2on條件等值連接(on后面的條件是“=”等于自連接(等值連接的一種形式自連接的數(shù)據(jù)來(lái)源只有一個(gè)表,通過(guò)使用表的別名虛擬成兩個(gè)表的方式實(shí)現(xiàn)。形如“empt1joinempt2ont1.mgr=t2.empno”的形式為自連接非等值連接(on后面的條件不是等值操作非等值連接指在多個(gè)表間使用非等號(hào)連接,查詢?cè)诙鄠€(gè)表間有非等值關(guān)系的數(shù)據(jù),非等值連接操作符包括:>、<、<>、>=、<=以及BetweenAnd、like、in等。123451SQL>createtablesalgrade_xxx(gradenumber(2),lowsalnumber(7,2),hisalnumber(7,2))SQL>insertSQL>createtablesalgrade_xxx(gradenumber(2),lowsalnumber(7,2),hisalnumber(7,2))SQL>insertintosalgrade_ningvalues(1,10001,99999);SQL>insertintosalgrade_ningvalues(2,8001,10000);SQL>insertintosalgrade_ningvalues(3,6001,8000);SQL>insertintosalgrade_ningvalues(4,4001,6000);SQL>insertintosalgrade_ningvalues(5,1,4000);SQL>commit;SQL>selecte.empno,SQL>selecte.empno,e.ename,e.salary,s.gradefromemp_xxxejoinsalgrade_xxxsone.salarybetweens.lowsalands.hisal有些時(shí)候需要返回那些丌滿足條件的記錄用內(nèi)連接查詢。外連接分3種:leftoutert2on條rightoutert2on條fulloutert2on條數(shù)據(jù)查詢語(yǔ)言 數(shù)據(jù)定義語(yǔ)言 create/drop/alter/數(shù)據(jù)語(yǔ)言 insert/update/事務(wù)控制語(yǔ)言 commit/rollback/數(shù)據(jù)控制語(yǔ)言 grant/revoke(不用戶權(quán)限相關(guān),后續(xù)講解EmpDeptSalgradeDML數(shù)insert(揑入數(shù)據(jù))--如果有數(shù)據(jù)沒提供,用nullSQL>insertintodept_xxxvalues(66,'market',null)SQL>insertintovalues(1020,'rory','Programmer',6000,null,null,sysdate,10)建議采用寫列名使是插入全建議把列名寫SQL>SQL>insertintoemp_xxx(empno,salary,ename,hiredate)values(1020,6000,'rory',to_date('2011/10/10','yyyy/mm/dd'))to_date函數(shù)是oracle--在oracle據(jù)庫(kù)中揑入日定要用to_date格式10-OCT-表createtable表查詢語(yǔ)句;只結(jié)構(gòu),不數(shù)【案例4】表:只結(jié)構(gòu),不數(shù)SQL>SQL>createtablesalgrade_yyywhere1<>1一部分?jǐn)?shù)據(jù)如果表時(shí)的查詢語(yǔ)句中有表達(dá)式或者函數(shù)(包括單行函數(shù)和組函數(shù)),必須指定新表中的列名指定方式:給列設(shè)置別名;或者在新表中設(shè)置列名SQL>createtableemp_yyyselectempnoenamesalary*12 fromemp_xxxwheredeptno=10;SQL>createtableemp_count(didemp_num selectdeptno,count(*)fromemp_xxxgroupbydeptno【案7】創(chuàng)建一個(gè)emp結(jié)構(gòu)相同的空門號(hào)10員工信息放入該表如果有一張表emp數(shù)據(jù)量為一百萬(wàn)條時(shí)需1測(cè)試表只放入少量測(cè)試數(shù)據(jù)條),執(zhí)行步驟如下所示SQL>createtableemp_bak1--emp_bak1SQL>createtableemp_bak1--emp_bak1結(jié)構(gòu)與emp_xxx結(jié)構(gòu)完全相select*fromemp_xxxwhere1=0;SQL>insertinto(selectSQL>insertinto(select*fromemp_xxxwheredeptno=10)SQL>SQL>deletefromemp_bak1 除全表的數(shù)據(jù)from以省略SQL>SQL>insertinto(select*fromemp_xxxwheredeptnoin(20,30))rownum關(guān)鍵字rownumOracle據(jù)庫(kù)提供的表行號(hào)【案9】向新表中揑入指定記錄數(shù)的數(shù)據(jù)8SQL>SQL>deletefromemp_bak1SQL>insertinto(select*fromemp_xxxwhererownum8);--rownum行注意:表的時(shí)候,丌約束條update(更新數(shù)據(jù))update表名set列名=新的列值,列名=新的列where條件更新update表時(shí)條件rollback回退,commit【案10】將員工號(hào)1012員工薪水改為3500,職位改為SQL>SQL>updatesetsalary=3500,job='Programmer'whereempno=1012;SQL>SQL>updateemp_xxxsetsalary=salary+1000wheredeptno=10;delete(刪除數(shù)據(jù))delete[from]表名where條件;如果刪除語(yǔ)句中丌加whererollback回退,commitdroptabletruncate構(gòu)。Droptruncate不可以回退。delete僅刪除數(shù)據(jù),可以回deleteemp_bak1whereempno=1002;deleteemp_bak1wheredeptno=10;deleteemp_bak1commit--如下語(yǔ)句執(zhí)3入--如下語(yǔ)句執(zhí)3入3重復(fù)SQL>insertintoemp_bak1(empno,ename,salary)values(1015,'amy',4000);--如下語(yǔ)句執(zhí)2入2重復(fù)SQL>insertintoemp_bak1(empno,ename,salary)values(1016,'rory',5000);--如下語(yǔ)句執(zhí)1遍,揑入1數(shù)SQL>insertintoemp_bak1(empno,ename,salary)values(1017,'river',6000);2:創(chuàng)建emp_bak2記錄用distinctSQL>SQL>createtableemp_bak2selectdistinctempno,ename,salaryhiredate,job,bonus,deptno,mgrfromemp_bak1;關(guān)SQLSQL>droptableemp_bak1 --刪除表SQL>renameemp_bak2toemp_bak1 emp_bak2改名為rowid關(guān)鍵字刪除重復(fù)數(shù)據(jù)(較簡(jiǎn)單,性能高)rowidOracle偽列rowidOracle據(jù)庫(kù)獨(dú)有注意:每一條記錄的rowid數(shù)據(jù)庫(kù)中都是唯一【案例SQL>deleteSQL>deletefromemp_bak1--如下語(yǔ)3入3復(fù)數(shù)SQL>insertintoemp_bak1(empno,ename,salary)values(1015,'amy',4000);--如下語(yǔ)2入2復(fù)數(shù)SQL>insertintoemp_bak1(empno,ename,salary)values(1016,'rory',5000);--如下語(yǔ)1入1SQL>insertintoemp_bak1(empno,ename,salary)values(1017,'river',6000);SQL>deletefromwhereSQL>deletefromwhererowidnotin(selectmax(rowid)fromgroupbyempno,ename,salary)--子查詢:查詢empnoenamesalary同rowid除不Transaction(事務(wù))事務(wù)是一組DML在一個(gè)事務(wù)內(nèi),組成事務(wù)的這組DML作事務(wù)控制語(yǔ)言TCL(TransactionControlLanguage 事務(wù)提交將所有的數(shù)據(jù)改勱 事務(wù)回滾之初 事務(wù)保存點(diǎn)(較丌常用事務(wù)開始于上一個(gè)事務(wù)的終止或者第一條DML語(yǔ)于如果連接關(guān)閉,事務(wù)(Transaction將隱式提DDL操作如create務(wù)將隱式提如果出現(xiàn)異常滾當(dāng)用戶務(wù)器建立連接成功后,服務(wù)器端Oracle將不客戶端建立一個(gè)會(huì)話(Session)??蛻舳瞬籓racle的交互都是在這個(gè)會(huì)話環(huán)境中進(jìn)行的。演開啟一個(gè)會(huì)話A,創(chuàng)建表并插入1條數(shù)據(jù)(注意:丌提交(注意練習(xí)時(shí)使用同一個(gè)用戶在兩個(gè)窗口中登錄,比如openlab開啟2個(gè)會(huì)話B,在會(huì)話Acommit話B查看表結(jié)構(gòu)看丌Aupdate作commit話B到的仍然是原先的A交commit)后,會(huì)話B到被改變的結(jié)Aupdate有commitBdelete作時(shí)為試圖操作相同A交commit話B結(jié)束阻塞狀態(tài)始如果提交(commit)后,數(shù)據(jù)的改變被確認(rèn),則所有的會(huì)話都能看到被改變的結(jié)果;數(shù)據(jù)上的鎖被釋放rollback),則數(shù)據(jù)的改變被取消數(shù)據(jù)上的鎖被釋放設(shè)置保存點(diǎn),可以回滾(rollback到指定的保存點(diǎn)createtablemytemp_xxx(idnumber(4))insertintomytemp_xxxvalues(3)savepointA--設(shè)置保存點(diǎn),名為insertintomytemp_xxxvalues(4)savepoint--設(shè)置保存點(diǎn),名為insertintomytemp_xxxvalues(5)rollbacktoA;--回滾到保存點(diǎn)A,注意:A后的保存點(diǎn)全部被select*frommytemp_xxx;--34、5DDL數(shù)據(jù)定義語(yǔ)DDL:create/dropaltercreate(建表)1類createtable表名列名型第2種,由一個(gè)現(xiàn)存的表新createtable表查詢語(yǔ)句;drop drop語(yǔ)法結(jié)構(gòu):droptable表名;和表相關(guān)的數(shù)據(jù)字典字段 表字段 【案19】找111207后創(chuàng)建的表除過(guò)時(shí)的表注意日期格式環(huán)境成7-1211使SQL>selecta.table_name,fromuser_tablesajoinuser_objectsbona.table_name=b.object_namewhereb.created>'7-DEC-11'; SQL>droptableSQL>SQL>selectfromuser_tablesajoinuser_objectsbona.table_name=b.object_namewhereb.created<add_months(sysdate,-truncate(截取,截?cái)?truncate結(jié)構(gòu)truncate作丌需提交commit有回退rollback的機(jī)語(yǔ)法結(jié)構(gòu):truncatetable表名;truncatedeletedelete操作將刪除數(shù)據(jù)到臨時(shí)空間中,丌直接刪除,可以回退truncate退alter(修改結(jié)構(gòu))【案22】增加列一列SQL>SQL>createtablemytemp_xxx(idnumber(4));SQL>altert

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。