版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
oracle數(shù)據(jù)庫?齡計(jì)算公式,Oracle數(shù)據(jù)庫基礎(chǔ)?門、數(shù)據(jù)庫語句?、?先在dos?窗?下輸?:sqlplus->進(jìn)?Oracle登錄?、sys?戶、system?戶、普通?戶Oracle安裝會(huì)?動(dòng)?成sys?戶和system?戶,是系統(tǒng)?戶sys?戶:sys?戶是超級?戶,具有最?權(quán)限,具有sysdba??,有createdatabase的權(quán)限system?戶:system?戶是管理操作員,權(quán)限也很?,具有sysoper??,沒有createdatabase的權(quán)限普通?戶:是通過在系統(tǒng)?戶下創(chuàng)建的,可以給普通?戶授予權(quán)限,可以授予connect、resource、createview、dba權(quán)限,dba權(quán)限是最?權(quán)限,?般不需要授給普通?戶。Oracle創(chuàng)建?戶授權(quán)的步驟(在系統(tǒng)?戶下完成的):①?先要?jiǎng)?chuàng)建表空間SQL>createtablespace表空間名datafile'數(shù)據(jù)?件絕對路徑\數(shù)據(jù)?件名.DBF'size??(單位:m);數(shù)據(jù)?件路徑例如:D:\app\lxw\oradata\orcl\數(shù)據(jù)?件名.DBF(是在你安裝的Oracle數(shù)據(jù)庫的oradata?件下)表空間(數(shù)據(jù)庫/schema模式/.DBF):?個(gè)?戶只能創(chuàng)建?個(gè)表空間,?個(gè)表空間可以創(chuàng)建多個(gè)?戶(重要,這也是和MySQL數(shù)據(jù)庫不太?樣的地?)②創(chuàng)建?戶SQL>createuser?戶名idetifiedby密碼defaulttablespace表空間名;③為?戶授權(quán)SQL>grantconnect,resourceto?戶名;④?普通?戶登錄直接連接:conn?戶名/密碼;或退出,重新登陸:exit⑤還可以修改Oracle?戶密碼:普通?戶輸?passwSQL>passw更改LXW的?令舊?令:新?令:重新鍵?新?令:?令已更改還可以?sys、system?戶修改密碼(alter是修改)SQL>alteruser?戶名idetifiedby新密碼;刪除?戶SQL>dropuser?戶名【cascade】;
注意:在刪除?戶時(shí),如果要?jiǎng)h除的?戶已經(jīng)建了表,那么就需要寫cascade,即把該?戶和表?同刪除三、Oracle表的管理(對表操作后最好都commit提交?哈,MySQL不?,會(huì)?動(dòng)提交)1.表名和列名命名規(guī)則①和java不?樣,不能使?駝峰命名,每個(gè)單詞之間?下劃線分隔(_)②必須以字母開頭③長度不能超過30個(gè)字符④不能使?Oracle關(guān)鍵字和保留字注:列名后?直接空格跟列別名2.數(shù)據(jù)類型--這?只列出最常?的?個(gè)①字符型char(長度):長度固定varchar2(長度):長度可變,可以節(jié)省空間【栗?】char(10)類型的abc—>會(huì)?動(dòng)補(bǔ)全空格—>‘a(chǎn)bc七個(gè)空格’varchar2(10)類型abc—>就是‘a(chǎn)bc’注:Oracle中字符串都是?的單引號(hào),和java中的不同,java中字符是單引號(hào),字符串是雙引號(hào)還有,字符串連接是兩個(gè)豎杠(||),java中是加號(hào)(+)②數(shù)字型number(總位數(shù))number(總數(shù),?數(shù)位數(shù))③?期類型-----dateto_date('?期','YYYY-MM-DD');--?期類型?selectto_char(列名,'YYYY-MM-DD');--取出注:Oracle中注釋是兩個(gè)減號(hào),不是兩個(gè)斜杠④?—blob但??的路徑3.對表結(jié)構(gòu)查詢,增加,修改,刪除(DDL-數(shù)據(jù)定語?)就是對表的列名(即字段)操作4.創(chuàng)建表,對表的增刪改查(DML-數(shù)據(jù)操縱語?)其中select查詢最重要:(1)區(qū)間查詢--where列名betweenand區(qū)間查詢(2)過濾掉重復(fù)的?
--distinct關(guān)鍵字過濾掉重復(fù)的?selectDISTINCT列名from表名;(3)模糊查詢select模糊查詢使?like關(guān)鍵字【語法】like’%’;①②③只是百分號(hào)的位置不同①前?精確后?模糊--%匹配多個(gè)字符--前?精確,后模模糊(可以是任意字符)--注意:SQL關(guān)鍵字和列名稱不區(qū)分??寫,但是查詢的內(nèi)容?定要區(qū)分??寫,否則?法查詢正確的結(jié)果--?結(jié):like關(guān)鍵字只能?在from關(guān)鍵字后?②前?模糊后?精確③前后模糊中間精確(4)聚合函數(shù)概念:數(shù)據(jù)匯總特征:每個(gè)聚合函數(shù)查詢結(jié)果當(dāng)?單列,返回?個(gè)值數(shù)據(jù)庫提供了5個(gè)聚合函數(shù):max(),min(),sum(),avg(),count()from表名(5)select查詢匯總select列名/或聚合函數(shù)(列名)from表名--指定表where條件(可以加?查詢select)--根據(jù)條件過濾?groupby列名--分組having過濾分組的條件--過濾分組條件,對聚合過濾,where不?持聚合。所以?havingorderby列名desc(遞減↓);--最后對查詢結(jié)果進(jìn)?排序,默認(rèn)是asc(遞增↑)--執(zhí)?順序:from--->where--->groupby--->having--->select--->orderbyselect列名/或聚合函數(shù)(列名)--------查詢from表名----------------------------------------指定表where條件(可以加?查詢select)------根據(jù)條件過濾?groupby列名-----------------------------------分組having過濾分組的條件-----------------------過濾分組條件,對聚合過濾,where不?持聚合。所以?havingorderby列名desc(遞減↓);---------------最后對查詢結(jié)果進(jìn)?排序,默認(rèn)是asc(遞增↑)上述為?條完整的語句執(zhí)?順序:from>—where>—groupby>—having>—select>—orderby
5.其它DDL(1)索引【概念】作?在表上,相當(dāng)于?本書(表)的?錄(索引)【創(chuàng)建索引的好處】可以快速查詢數(shù)據(jù),就像看書?樣,通過?錄,看到頁碼,然后根據(jù)頁碼很快就能翻到。【創(chuàng)建索引語法】createindex索引名on表名(列名)--表名(列名)指定為表的哪?列創(chuàng)建索引【注意】當(dāng)你為某個(gè)表創(chuàng)建?個(gè)主鍵約束,就會(huì)?動(dòng)隱式的創(chuàng)建?個(gè)索引當(dāng)你為某個(gè)表創(chuàng)建?個(gè)唯?約束,也會(huì)隱式的創(chuàng)建?個(gè)唯?索引【刪除索引語法】dropindex索引名(2)視圖【概念】視圖是?張?zhí)摫恚?般只供查看,不?持修改,所以要設(shè)置為只讀,?且視圖為了隱藏核?數(shù)據(jù),只暴露其它數(shù)據(jù),供查看的【創(chuàng)建視圖語法】createview視圖名asSQL語句--SQL語句控制顯?哪些數(shù)據(jù)withreadonly;--視圖設(shè)置為只讀創(chuàng)建視圖最好設(shè)置為只讀,要不然你修改了視圖的內(nèi)容,原表的數(shù)據(jù)也會(huì)同步修改,因?yàn)槟銊?chuàng)建視圖就是為了查看的,不要修改【問題】錯(cuò)誤報(bào)告-ORA-01031:權(quán)限不?01031.00000-“insufficientprivileges”*Cause:Anattemptwasmadetoperformadatabaseoperationwithoutthenecessaryprivileges.*Action:Askyourdatabaseadministratorordesignatedsecurityadministratortograntyouthenecessaryprivileges【原因】scott?戶沒有創(chuàng)建視圖的權(quán)限【如何解決】在system?戶下?為普通?戶授予創(chuàng)建視圖的權(quán)限SQL>grantcreateviewto?戶名;(3)序列【概念】?動(dòng)為你創(chuàng)建?個(gè)整數(shù)類型的編號(hào)值,能夠?yàn)槟?動(dòng)創(chuàng)建id
【為什么需要序列】之前向表插?id值是?動(dòng)插?的,風(fēng)險(xiǎn):有可能插?的id已經(jīng)在表中存在,就會(huì)報(bào)錯(cuò)【語法】createsequenece序列名startwith值--初始值inti=0incrementby值--incrementby步長i++minvalue值--最?值最?值不能?于startwithmaxvalue值--最?值nocache/cache--nocache不使?緩存cache使?緩存nocycle/cycle;--nocycle不循環(huán)(超過最?值不循環(huán))cycle超過最?值從新循環(huán)【栗?】--沒有創(chuàng)建序列的情況下,需要顯?的插?ID值insertinto表名(id,其它列)values(你?輸?shù)膇d,'數(shù)據(jù)');--序列名.NEXTVAL就會(huì)?動(dòng)插?id--序列名是我們創(chuàng)建的序列,NEXTVAL序列的下?個(gè)值insertinto表名(id,其它列)values(序列名.NEXTVAL,'數(shù)據(jù)');commit;【刪除序列】dropsequence序列名;四、PL/SQL(?向過程和SQL結(jié)合)ProcedureLanguage/StructQueryLanguage?向過程語?和結(jié)構(gòu)化查詢語?1.匿名PL/SQL重要:使?PL/SQL之前,必須加下??句,否則執(zhí)?不成功--設(shè)置?個(gè)服務(wù)器端的輸出緩存??是999999setserveroutputonsize999999【概念】沒有名字的的PL/SQL語句,只能執(zhí)??次,不能重復(fù)調(diào)?【語法】declare聲明變量、常量begin程序邏輯end;--PL/SQL結(jié)束【栗?】—第?個(gè)HelloWorld(程序猿學(xué)語?的第?個(gè)程序HelloWorld)
--設(shè)置?個(gè)服務(wù)器端的輸出緩存??是999999setserveroutputonsize999999begindbms_output.put_line('Helloworld');--dbms_output.put_line輸出語句end;1.1定義變量【語法】變量名數(shù)據(jù)類型:=值;1.2定義常量【語法】常量名稱constant數(shù)據(jù)類型:=值;1.3Oracle注意的地?①PL/SQL使?’’表?字符串,使?||做字符串拼接②不能使??增?減運(yùn)算符,只能變量:=變量+/-數(shù)2.輸?(相當(dāng)于java中的Scanner)PL/SQL使?&符號(hào)完成輸?框的輸?【栗?】--輸?字符串必須有''declarev_sexvarchar2(1):='&n';v_scorenumber(5,2):=&no;begindbms_output.put_line(v_sex);dbms_output.put_line(v_score);end;3.分?結(jié)構(gòu)【簡單分?ifelse】declare聲明變量、常量beginif條件then程序語句1else程序語句2;endif;
end;4.選擇—casewhen【語法】casewhen條件then執(zhí)?的語句1when條件then執(zhí)?的語句2when條件then執(zhí)?的語句3else執(zhí)?的語句4endcase;5.循環(huán)結(jié)構(gòu)【for循環(huán)】for迭代器變量in初始值..最?值loop循環(huán)體;endloop;【栗?】--求1~100和declarev_sumnumber(5):=0;beginforiin1..100loopv_sum:=v_sum+i;endloop;dbms_output.put_line('value='||v_sum);end;【while循環(huán)】while條件loop循環(huán)體;更新循環(huán)變量;endloop;【栗?】–求1~100和declarev_sumnumber(5):=0;v_indexnumber(3):=0;beginwhilev_index<=100loop
--循環(huán)體v_sum:=v_sum+v_index;--更新循環(huán)變量v_index:=v_index+1;endloop;dbms_output.put_line('=sum='||v_sum);end;6.署名【匿名PL/SQL缺點(diǎn)】不能重復(fù)調(diào)?【署名】顯?定義有名稱的PL/SQL6.1過程【概念】定義?次可以重復(fù)調(diào)?【語法】createorreplaceprocedure過程名稱(參數(shù)名稱參數(shù)類型數(shù)據(jù)類型)as--定義變量begin語句end;【注意】參數(shù)名稱使?v_開始參數(shù)類型in輸?參數(shù)out輸出參數(shù)inout即是輸?也是輸出參數(shù)變量的定義在as和begin之間6.2游標(biāo)(MySQL中沒有)【概念】運(yùn)?在過程??,能夠逐?的讀取數(shù)據(jù),游標(biāo)名稱就是表名稱createorreplaceprocedure過程名稱(參數(shù)名稱參數(shù)類型數(shù)據(jù)類型)ascursor游標(biāo)名稱isSQL語句;begin--遍歷游標(biāo),讀取游標(biāo)的數(shù)據(jù)foriin游標(biāo)名稱loopi.empnoi.ename;endloop;end;
6.3觸發(fā)器(重點(diǎn))【概念】發(fā)?某件事情,會(huì)觸發(fā)?個(gè)事件,執(zhí)?對應(yīng)的?為。觸發(fā)器不?顯?調(diào)?就能夠執(zhí)?【觸發(fā)器機(jī)制】當(dāng)發(fā)?insert\delete事件時(shí),會(huì)產(chǎn)??個(gè)觸發(fā)事件,在觸發(fā)事件中會(huì)創(chuàng)建?張?zhí)摫?dual),虛表的結(jié)構(gòu)和真實(shí)表?樣,虛表永遠(yuǎn)只保存真實(shí)表最近插?or刪除的??數(shù)據(jù)(虛表永遠(yuǎn)只有??數(shù)據(jù))【語法】createorreplacetrigger觸發(fā)器名稱觸發(fā)時(shí)間--before在觸發(fā)事件之前執(zhí)?/after在觸發(fā)事件之后執(zhí)?觸發(fā)事件--insert/delete/updateon表名稱--在那個(gè)表上觸發(fā)觸發(fā)級別--foreachrow?級觸發(fā)begin--觸發(fā)語句end;五、Oracle提供函數(shù)1.?期,系統(tǒng)時(shí)間相關(guān)函數(shù)相當(dāng)于Java中Date類和Calendar類的成員?法①sysdate:返回當(dāng)前?期--21-AUG-2019selectsysdatefromdual;AUG是英???的縮寫,很不友好,不好看②extract:根據(jù)指定格式提取時(shí)間相關(guān)的數(shù)據(jù)--提取系統(tǒng)?期中的天selectextract(dayfromsysdate)fromdual;--提取系統(tǒng)?期中的年份selectextract(yearfromsysdate)fromdual;--提取系統(tǒng)?期中的?份selectextract(monthfromsysdate)fromdual;所以,引出?個(gè)問題,那么?齡等怎么計(jì)算的,因?yàn)?作年份是?期類型存儲(chǔ)的,就可以?當(dāng)前?期減?作年份,就可得到惹2.數(shù)學(xué)相關(guān)函數(shù)相當(dāng)于Java中的Math類的靜態(tài)?法①abs(args):參數(shù)的絕對值
②ceil(args)天花板:向上取整3.14----》4floor(args)地板:向下取整3.14----》3③mod(args):類似于java的%運(yùn)算符取余數(shù)④round:四舍五?--對參數(shù)1進(jìn)?四舍五?,參數(shù)2是參數(shù)1四舍五?保留的?數(shù)位數(shù)selectround(參數(shù)1,參數(shù)2)fromdual;⑤sq
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師師德學(xué)習(xí)心得范文
- 競選班長發(fā)言稿14篇
- 業(yè)務(wù)員上半年工作總結(jié)6篇
- 體育組工作總結(jié)
- 固體廢棄物綜合利用和資源循環(huán)利用項(xiàng)目建設(shè)方案
- 財(cái)務(wù)類實(shí)習(xí)報(bào)告模板集錦7篇
- 新員工入職培訓(xùn)開班儀式領(lǐng)導(dǎo)講話稿【匯編七篇】
- 教育實(shí)習(xí)報(bào)告模板錦集9篇
- 讀書文化活動(dòng)方案五篇
- xx區(qū)供排水項(xiàng)目可行性研究報(bào)告
- 公務(wù)用車車輛使用及管理辦法
- 論語十二章理解性默寫題及答案
- 微機(jī)原理與應(yīng)用ppt課件(完整版)
- 六年級語文上冊第八單元優(yōu)質(zhì)教案+反思+說課稿
- 安全生產(chǎn)規(guī)章制度的編制說明
- 簡約商務(wù)風(fēng)自我介紹PPT模板
- 印刷機(jī)作業(yè)指導(dǎo)書
- 小學(xué)“班級十星”評選活動(dòng)實(shí)施方案
- 簡約插畫風(fēng)校園教師讀書分享會(huì)內(nèi)容PPT匯報(bào)
- 國家開放大學(xué)《工程經(jīng)濟(jì)與管理》章節(jié)測試參考答案
- 行進(jìn)間單手低手上籃教案
評論
0/150
提交評論