oracle數(shù)據庫工齡計算公式,Oracle數(shù)據庫基礎入門、數(shù)據庫語句_第1頁
oracle數(shù)據庫工齡計算公式,Oracle數(shù)據庫基礎入門、數(shù)據庫語句_第2頁
oracle數(shù)據庫工齡計算公式,Oracle數(shù)據庫基礎入門、數(shù)據庫語句_第3頁
oracle數(shù)據庫工齡計算公式,Oracle數(shù)據庫基礎入門、數(shù)據庫語句_第4頁
oracle數(shù)據庫工齡計算公式,Oracle數(shù)據庫基礎入門、數(shù)據庫語句_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

oracle數(shù)據庫?齡計算公式,Oracle數(shù)據庫基礎?門、數(shù)據庫語句?、?先在dos?窗?下輸?:sqlplus->進?Oracle登錄?、sys?戶、system?戶、普通?戶Oracle安裝會?動?成sys?戶和system?戶,是系統(tǒng)?戶sys?戶:sys?戶是超級?戶,具有最?權限,具有sysdba??,有createdatabase的權限system?戶:system?戶是管理操作員,權限也很?,具有sysoper??,沒有createdatabase的權限普通?戶:是通過在系統(tǒng)?戶下創(chuàng)建的,可以給普通?戶授予權限,可以授予connect、resource、createview、dba權限,dba權限是最?權限,?般不需要授給普通?戶。Oracle創(chuàng)建?戶授權的步驟(在系統(tǒng)?戶下完成的):①?先要創(chuàng)建表空間SQL>createtablespace表空間名datafile'數(shù)據?件絕對路徑\數(shù)據?件名.DBF'size??(單位:m);數(shù)據?件路徑例如:D:\app\lxw\oradata\orcl\數(shù)據?件名.DBF(是在你安裝的Oracle數(shù)據庫的oradata?件下)表空間(數(shù)據庫/schema模式/.DBF):?個?戶只能創(chuàng)建?個表空間,?個表空間可以創(chuàng)建多個?戶(重要,這也是和MySQL數(shù)據庫不太?樣的地?)②創(chuàng)建?戶SQL>createuser?戶名idetifiedby密碼defaulttablespace表空間名;③為?戶授權SQL>grantconnect,resourceto?戶名;④?普通?戶登錄直接連接:conn?戶名/密碼;或退出,重新登陸:exit⑤還可以修改Oracle?戶密碼:普通?戶輸?passwSQL>passw更改LXW的?令舊?令:新?令:重新鍵?新?令:?令已更改還可以?sys、system?戶修改密碼(alter是修改)SQL>alteruser?戶名idetifiedby新密碼;刪除?戶SQL>dropuser?戶名【cascade】;

注意:在刪除?戶時,如果要刪除的?戶已經建了表,那么就需要寫cascade,即把該?戶和表?同刪除三、Oracle表的管理(對表操作后最好都commit提交?哈,MySQL不?,會?動提交)1.表名和列名命名規(guī)則①和java不?樣,不能使?駝峰命名,每個單詞之間?下劃線分隔(_)②必須以字母開頭③長度不能超過30個字符④不能使?Oracle關鍵字和保留字注:列名后?直接空格跟列別名2.數(shù)據類型--這?只列出最常?的?個①字符型char(長度):長度固定varchar2(長度):長度可變,可以節(jié)省空間【栗?】char(10)類型的abc—>會?動補全空格—>‘abc七個空格’varchar2(10)類型abc—>就是‘abc’注:Oracle中字符串都是?的單引號,和java中的不同,java中字符是單引號,字符串是雙引號還有,字符串連接是兩個豎杠(||),java中是加號(+)②數(shù)字型number(總位數(shù))number(總數(shù),?數(shù)位數(shù))③?期類型-----dateto_date('?期','YYYY-MM-DD');--?期類型?selectto_char(列名,'YYYY-MM-DD');--取出注:Oracle中注釋是兩個減號,不是兩個斜杠④?—blob但??的路徑3.對表結構查詢,增加,修改,刪除(DDL-數(shù)據定語?)就是對表的列名(即字段)操作4.創(chuàng)建表,對表的增刪改查(DML-數(shù)據操縱語?)其中select查詢最重要:(1)區(qū)間查詢--where列名betweenand區(qū)間查詢(2)過濾掉重復的?

--distinct關鍵字過濾掉重復的?selectDISTINCT列名from表名;(3)模糊查詢select模糊查詢使?like關鍵字【語法】like’%’;①②③只是百分號的位置不同①前?精確后?模糊--%匹配多個字符--前?精確,后模模糊(可以是任意字符)--注意:SQL關鍵字和列名稱不區(qū)分??寫,但是查詢的內容?定要區(qū)分??寫,否則?法查詢正確的結果--?結:like關鍵字只能?在from關鍵字后?②前?模糊后?精確③前后模糊中間精確(4)聚合函數(shù)概念:數(shù)據匯總特征:每個聚合函數(shù)查詢結果當?單列,返回?個值數(shù)據庫提供了5個聚合函數(shù):max(),min(),sum(),avg(),count()from表名(5)select查詢匯總select列名/或聚合函數(shù)(列名)from表名--指定表where條件(可以加?查詢select)--根據條件過濾?groupby列名--分組having過濾分組的條件--過濾分組條件,對聚合過濾,where不?持聚合。所以?havingorderby列名desc(遞減↓);--最后對查詢結果進?排序,默認是asc(遞增↑)--執(zhí)?順序:from--->where--->groupby--->having--->select--->orderbyselect列名/或聚合函數(shù)(列名)--------查詢from表名----------------------------------------指定表where條件(可以加?查詢select)------根據條件過濾?groupby列名-----------------------------------分組having過濾分組的條件-----------------------過濾分組條件,對聚合過濾,where不?持聚合。所以?havingorderby列名desc(遞減↓);---------------最后對查詢結果進?排序,默認是asc(遞增↑)上述為?條完整的語句執(zhí)?順序:from>—where>—groupby>—having>—select>—orderby

5.其它DDL(1)索引【概念】作?在表上,相當于?本書(表)的?錄(索引)【創(chuàng)建索引的好處】可以快速查詢數(shù)據,就像看書?樣,通過?錄,看到頁碼,然后根據頁碼很快就能翻到。【創(chuàng)建索引語法】createindex索引名on表名(列名)--表名(列名)指定為表的哪?列創(chuàng)建索引【注意】當你為某個表創(chuàng)建?個主鍵約束,就會?動隱式的創(chuàng)建?個索引當你為某個表創(chuàng)建?個唯?約束,也會隱式的創(chuàng)建?個唯?索引【刪除索引語法】dropindex索引名(2)視圖【概念】視圖是?張?zhí)摫恚?般只供查看,不?持修改,所以要設置為只讀,?且視圖為了隱藏核?數(shù)據,只暴露其它數(shù)據,供查看的【創(chuàng)建視圖語法】createview視圖名asSQL語句--SQL語句控制顯?哪些數(shù)據withreadonly;--視圖設置為只讀創(chuàng)建視圖最好設置為只讀,要不然你修改了視圖的內容,原表的數(shù)據也會同步修改,因為你創(chuàng)建視圖就是為了查看的,不要修改【問題】錯誤報告-ORA-01031:權限不?01031.00000-“insufficientprivileges”*Cause:Anattemptwasmadetoperformadatabaseoperationwithoutthenecessaryprivileges.*Action:Askyourdatabaseadministratorordesignatedsecurityadministratortograntyouthenecessaryprivileges【原因】scott?戶沒有創(chuàng)建視圖的權限【如何解決】在system?戶下?為普通?戶授予創(chuàng)建視圖的權限SQL>grantcreateviewto?戶名;(3)序列【概念】?動為你創(chuàng)建?個整數(shù)類型的編號值,能夠為你?動創(chuàng)建id

【為什么需要序列】之前向表插?id值是?動插?的,風險:有可能插?的id已經在表中存在,就會報錯【語法】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ù)據');--序列名.NEXTVAL就會?動插?id--序列名是我們創(chuàng)建的序列,NEXTVAL序列的下?個值insertinto表名(id,其它列)values(序列名.NEXTVAL,'數(shù)據');commit;【刪除序列】dropsequence序列名;四、PL/SQL(?向過程和SQL結合)ProcedureLanguage/StructQueryLanguage?向過程語?和結構化查詢語?1.匿名PL/SQL重要:使?PL/SQL之前,必須加下??句,否則執(zhí)?不成功--設置?個服務器端的輸出緩存??是999999setserveroutputonsize999999【概念】沒有名字的的PL/SQL語句,只能執(zhí)??次,不能重復調?【語法】declare聲明變量、常量begin程序邏輯end;--PL/SQL結束【栗?】—第?個HelloWorld(程序猿學語?的第?個程序HelloWorld)

--設置?個服務器端的輸出緩存??是999999setserveroutputonsize999999begindbms_output.put_line('Helloworld');--dbms_output.put_line輸出語句end;1.1定義變量【語法】變量名數(shù)據類型:=值;1.2定義常量【語法】常量名稱constant數(shù)據類型:=值;1.3Oracle注意的地?①PL/SQL使?’’表?字符串,使?||做字符串拼接②不能使??增?減運算符,只能變量:=變量+/-數(shù)2.輸?(相當于java中的Scanner)PL/SQL使?&符號完成輸?框的輸?【栗?】--輸?字符串必須有''declarev_sexvarchar2(1):='&n';v_scorenumber(5,2):=&no;begindbms_output.put_line(v_sex);dbms_output.put_line(v_score);end;3.分?結構【簡單分?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)結構【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缺點】不能重復調?【署名】顯?定義有名稱的PL/SQL6.1過程【概念】定義?次可以重復調?【語法】createorreplaceprocedure過程名稱(參數(shù)名稱參數(shù)類型數(shù)據類型)as--定義變量begin語句end;【注意】參數(shù)名稱使?v_開始參數(shù)類型in輸?參數(shù)out輸出參數(shù)inout即是輸?也是輸出參數(shù)變量的定義在as和begin之間6.2游標(MySQL中沒有)【概念】運?在過程??,能夠逐?的讀取數(shù)據,游標名稱就是表名稱createorreplaceprocedure過程名稱(參數(shù)名稱參數(shù)類型數(shù)據類型)ascursor游標名稱isSQL語句;begin--遍歷游標,讀取游標的數(shù)據foriin游標名稱loopi.empnoi.ename;endloop;end;

6.3觸發(fā)器(重點)【概念】發(fā)?某件事情,會觸發(fā)?個事件,執(zhí)?對應的?為。觸發(fā)器不?顯?調?就能夠執(zhí)?【觸發(fā)器機制】當發(fā)?insert\delete事件時,會產??個觸發(fā)事件,在觸發(fā)事件中會創(chuàng)建?張?zhí)摫?dual),虛表的結構和真實表?樣,虛表永遠只保存真實表最近插?or刪除的??數(shù)據(虛表永遠只有??數(shù)據)【語法】createorreplacetrigger觸發(fā)器名稱觸發(fā)時間--before在觸發(fā)事件之前執(zhí)?/after在觸發(fā)事件之后執(zhí)?觸發(fā)事件--insert/delete/updateon表名稱--在那個表上觸發(fā)觸發(fā)級別--foreachrow?級觸發(fā)begin--觸發(fā)語句end;五、Oracle提供函數(shù)1.?期,系統(tǒng)時間相關函數(shù)相當于Java中Date類和Calendar類的成員?法①sysdate:返回當前?期--21-AUG-2019selectsysdatefromdual;AUG是英???的縮寫,很不友好,不好看②extract:根據指定格式提取時間相關的數(shù)據--提取系統(tǒng)?期中的天selectextract(dayfromsysdate)fromdual;--提取系統(tǒng)?期中的年份selectextract(yearfromsysdate)fromdual;--提取系統(tǒng)?期中的?份selectextract(monthfromsysdate)fromdual;所以,引出?個問題,那么?齡等怎么計算的,因為?作年份是?期類型存儲的,就可以?當前?期減?作年份,就可得到惹2.數(shù)學相關函數(shù)相當于Java中的Math類的靜態(tài)?法①abs(args):參數(shù)的絕對值

②ceil(args)天花板:向上取整3.14----》4floor(args)地板:向下取整3.14----》3③mod(args):類似于java的%運算符取余數(shù)④round:四舍五?--對參數(shù)1進?四舍五?,參數(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論