




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目前 ORACLE表空間定 原 命 ORACLE數(shù)據(jù)文 數(shù)據(jù)文件 用戶管 用戶創(chuàng) 用戶...................................................................................................................管 表定 表 列類 列長(zhǎng) 索 主 外 表分 PL/SQL過(guò)程編寫(xiě)規(guī) 命 格 大小寫(xiě)規(guī) 語(yǔ)句規(guī) SELECT語(yǔ)句的格式標(biāo)準(zhǔn) DELETE語(yǔ)句的格式標(biāo)準(zhǔn) 盡量避免使用GOTO......LABEL語(yǔ)句 ORACLE的偽表與偽列 使用%ROWTYPE和 盡量不使用NOTIN子句 不要在WHERE子句中使用函數(shù)作為條件 使用SELECT EXISTS子句中,使用SELECT 使用TRUNCATE 在PL/SQL中使用 適當(dāng)使用ORACLE的 注釋要 位置要 變量的.............................................................................................................數(shù)據(jù)選 游標(biāo)的使 尾注要 C/C++SQL書(shū)寫(xiě)規(guī) SELECT語(yǔ)句格式標(biāo) UPDATE語(yǔ)句格式標(biāo) DELETE語(yǔ)句格式標(biāo) INSERT語(yǔ)句格式標(biāo) JDBC&ORACLE使用............................................................................................... 在動(dòng)態(tài)SQL或有時(shí)間限制令中使用STATEMENT對(duì) 在成批處理重復(fù)的或更新操作中使用PreparedStatement對(duì) 利用SQL完成數(shù)據(jù)庫(kù)內(nèi)的操 所有數(shù)值型的字段使用NUMBER(X)/ 索引名為 字段別名用AS方 返回值約 前英文使用原使用英文名稱時(shí),使用大寫(xiě)。單詞之間用下劃線“_”進(jìn)行分隔。使用范圍包負(fù)責(zé)形成英文單詞縮寫(xiě)匯總表,所有英文單詞的縮寫(xiě)格式。ORACLE表空間原SYSTEM用戶不得使用SYSTEM表空間。BLOCK_SIZE16K命用戶表表空間命名格式:TBS_UserNameTBS_OLAP索引表空間命名格式:TBS_UserName_IDXTBS_OLAP_IDX或ORACLE數(shù)據(jù)文數(shù)據(jù)文件的存為了便于管理,數(shù)據(jù)文件應(yīng)存放在指數(shù)據(jù)文件數(shù)據(jù)文件命名前綴應(yīng)與表空間名一致,并加擴(kuò)展名以示區(qū)別,例如: 、TBS_E_ODS_2.ORA數(shù)據(jù)文件的大數(shù)據(jù)文件屬用戶管用戶創(chuàng)DBAE_DBA,平常數(shù)據(jù)庫(kù)管理員用該用戶進(jìn)行數(shù)據(jù)庫(kù)管理,只有在數(shù)據(jù)庫(kù)啟動(dòng)和關(guān)閉時(shí)才用SYS用戶進(jìn)行登錄。用戶CONNECTRESOURCEDBA用戶外,不得給普通用戶授予DBA角色權(quán)限。管用戶設(shè)置應(yīng)避免使用弱,特別是SYS/SYSTEM和另外單獨(dú)建的DBA用用戶命名規(guī)接口層EI_HA:AEI_SA:AEI_HB:BEI_SB:B應(yīng)用程EA_SEC:賬務(wù)管表在PowerDesigner中建模時(shí),表的中文名稱使用,代碼+名稱的格式,如柜臺(tái)客戶信息表的中文名稱:TR_CUST_INFO表。主鍵(PRIMARY列數(shù)字型字段使用NUMBER型,并指定長(zhǎng)度,整型使用NUMBER(m),如NUMBER(6)NUMBER(m,n)NUMBER(8,2)等。DATECHAR型,一般記錄日志的日期、時(shí)間字段用DATE型。如果日期和時(shí)間分成兩個(gè)字段,可以考慮日期采用使用CLOB代替 X,BLOB代替 應(yīng)當(dāng)根據(jù)實(shí)際需要選擇列長(zhǎng)度。有對(duì)應(yīng)web頁(yè)面的,與頁(yè)面上對(duì)應(yīng)列長(zhǎng)度一致。索索引名 IDX_TableName[_x],例 44對(duì)于表中的數(shù)據(jù)記錄頻繁地被刪除或,對(duì)這些表要經(jīng)常性重建索引,使Alterindexrebuild主主鍵名為外外鍵名為表分YZETABLETaGTameCOMPUTESTATISTICS;YZEINDEXIndexNameCOMPUTESTATISTICS;不可以對(duì)SYSTEM用戶和SYSPL/SQL過(guò)程編寫(xiě)規(guī)命 沿用公司原有《DatabaseServer端編碼規(guī)范》中名規(guī)范沿用公司原有《DatabaseServer端編碼規(guī)范》中名規(guī)范格FUNCTIONname[{parameter[,parameter,...]}]RETURNdatatypesIS[localdeclarations]executestatementsexceptionhandlers]END[name];PROCEDUREname[(parameter[,parameter,...])]IS[localdeclarations]executestatementsexceptionhandlers]END[name]為了保證不同編輯器中瀏覽的版式一致將編輯器設(shè)置為T(mén)AB轉(zhuǎn)換為4個(gè)空格begin-exception-endif-endifPL/SQLDeveloperPL/SQLBeautifier大小寫(xiě)規(guī)語(yǔ)句規(guī)SELECT語(yǔ)句的格式標(biāo)準(zhǔn)SELECTColumn_name1,Column_name2INTO:Parameter1,:Parameter2FROMTable1A,Table2BWHEREA.Column_name=過(guò)“執(zhí)行計(jì)劃”來(lái),在PL/SQLDeveloper中的ExplainPlanWindow中可分析ORACLE以下是SELECTSELECT[DISTINCT|ALL]{*|column1[,column2]...}FROM{table_1|(subquery)}[alias][,{table_2|(subquery)}[alias]]...[WHEREcondition][CONNECTBYcondition[STARTWITH[GROUPBYexpn][HAVIX[{UNION[ALL]|INTERSECT|MINUS}SELECT...][ORDERBY[expn][ASC|DESC][FORUPDATE[OF[user.]table|view]column]UPDATE語(yǔ)句的格式標(biāo)準(zhǔn)UPDATETableSETColumn_name1=Column_name2=:Parameter2WHEREColumn_name=:Pareameter;UPDATESET{column1=express1[,column2=experss2]...|(column1[,column2]...)=(subquery)}[WHEREcondition|currentofINSERT語(yǔ)句的格式標(biāo)準(zhǔn)INSERTINTOTableName(Column_name1,Column_name2)或INSERTINTOSELECTColumn_name1,Column_name2FROMTableWHEREColumn_name=INSERTINTOTableNameVALUESParameter1,:Parameter2INSERTINTOTableNameSELECT*FROMTableDELETE語(yǔ)句的格式標(biāo)準(zhǔn)DELETEFROMTableNameWHEREColumn_name1=DELETE[FROM][user.]table[@db_link][Alias][WHEREUNION,INTERSECT及有時(shí)需要從多個(gè)表中組合具有一種相似類型的信息。Union可以完成將兩個(gè)以u(píng)nionall則(不管是否重復(fù)IntersectMinus則返回只在一個(gè)表中出現(xiàn)的信息1.selectselectselect...selectselect...select...盡量避免使用 LABEL語(yǔ)句 ORACLE的偽表與偽列Oracle而是在建立對(duì)象時(shí)由自動(dòng)Oracle完成的。Oracle目前有以下的偽列:CURRVALand OracleDUALSELECTfromfrom后有個(gè)表名,就用DUAL代替。如:SQL>selectto_char(sysdate,'yyyy.mm.ddhh24:mi:ss')from2004.09.24例2:計(jì)算一下 *0.1的結(jié)果是多少,則SQL>select *0.1from 使用%ROWTYPEPL/SQL可以與數(shù)據(jù)庫(kù)行有相同類型的記錄或者與數(shù)據(jù)庫(kù)字段相同的變量類型 盡量不使用NOTIN子句NOTINNOEXISTSMINUS不要在WHERE子句中使用函數(shù)作為條件WHERETO_NUMBER(_NBR)=7654321這種寫(xiě)法是效率非常低下的使用SELECTSELECTCOUNT(*)SELECTCOUNT(1EXISTS子句中,使用SELECTEXISTS,SELECT*SELECT1CREATETABLETaGTameASSELECT*FROMINSERTINTOTaGTameSELECT*FROM……使用TRUNCATETRUNCATETABLETaGTameDELETEFROMTaGTame,能有效提高速度并該表所占的空間減少磁盤(pán)碎片由于TRUNCATETABLE是DDL語(yǔ)言,在過(guò)程中不能直接使用,應(yīng)加上EXECUTEIMMEDIATE,使用方法如下:EXECUTEIMMEDIATE‘TRUNCATETABLETaGTame’;使用前請(qǐng)注意是否限問(wèn)題PL/SQL中使用當(dāng)過(guò)程執(zhí)行出錯(cuò)拋出EXCEPTION時(shí),可通過(guò)sqlcode和sqlerrm取得當(dāng)前 UPDATEdeptSETusername=(SELECTusernameFROMwork_group)WHERErownum=1;WHENOTHERSV_SQLCODE:=sqlcode;V_ERRMSG:=sqlerrm;Dmbs_output.put_line‘程序出錯(cuò),錯(cuò)誤代碼:’||V_SQLCODE||’錯(cuò)誤信息:’||V_ERRMSG);適當(dāng)使用ORACLE……HINTINSERT/*+append*/INTO…….SELECTHINT/*+rule*/HINTSELECT/*+rule*/……FROM……WHERE注釋要位置要變量申明的注在變量申明語(yǔ)句的后面,并以--為注釋語(yǔ)V_BpModeVARCHAR2(10)SELECTBpModeINTOV_BpModeFROMACC_BPWHEREUser_ID=I_User_ID;WHENNO_DATA_FOUNDTHENWHENOTHERSTHENEND過(guò)程注釋要用途:<修訂日期><修訂人 代碼片斷注釋要代碼片斷處理要變量的函數(shù)變量的放在函數(shù)代碼段的開(kāi)始部分,不允許分散在函數(shù)內(nèi)小代碼片斷中。全局公共變量放在一個(gè)包內(nèi),并放在包代碼段開(kāi)始部分。數(shù)據(jù)選OracleSELECT*INTOV_AccFROMAcc_BpWHEREUser_ID=I_User_ID;WHENNO_DATA_FOUND……相應(yīng)處理;WHENOTHERSTHEN……相應(yīng)處理;END;V_PensonId=TO_NUMBER(I_In);WHENOTHERS……相應(yīng)處理;END;游標(biāo)的使FORrecIN(SELECT*FROMAcc_BpWHEREBpMode‘省網(wǎng)中文’…ENDLOOPEND錯(cuò)誤處理要不可以預(yù)見(jiàn)的Oracle系統(tǒng)錯(cuò)誤,則應(yīng)向操作員報(bào)告如下信息錯(cuò)誤發(fā)生的環(huán)境或關(guān)鍵條件、關(guān)鍵性的幫助信息的取舍與多寡,取決于如 t(IN_PayINJf_PayList%ROWTYPE)RETURNVARCHAR2V_AccAcc_Bp%ROWTYPE;SYSTEM_ERROREXCEPTION;SELECT*INTOV_AccFROMAcc_BpWHEREUser_ID=I_Pay.User_Id;WHENNO_DATA_FOUNDPub.SetErrMsg(無(wú)法找到用戶(User_ID=’||I_Pay.User_ID‘)’)RAISESYSTEM_ERROR;WHENOTHERSTHENPub.SetErrMsg(‘( t)取Acc_Bp表,User_ID=’||I_Pay.User_ID||‘意外錯(cuò)誤:’ ||SQLERRM);RAISESYSTEM_ERROREND;RETURN‘成功’WHENSYSTEM_ERRORTHENRETURN‘失敗’;WHENOTHERSPub.SetErrMsg( t)User_Id=’||I_Pay.User_ID‘,Money=’||I_Pay.PayMoney||‘,Free=’||I_PayList.PayFree||‘||SQLERRM);RAISE‘失敗’; 尾注要LOOPLOOP都應(yīng)該加注,如:LOOP--…LOOP--…LOOP--…ENDLOOP;--…ENDLOOP--…ENDLOOP--3ENDIF件內(nèi)容如:IF1IF條件2THENIF3THENENDIF3ENDIF2ENDIF 如果條件代碼片斷超過(guò)10行,應(yīng)加尾注,如:IF1THEN……10ENDIFC/C++SQL書(shū)寫(xiě)規(guī)首先,因公司原有的開(kāi)發(fā)規(guī)范不建議采用C/C++中直接嵌入SQL的作法。而是將SQL放在過(guò)程作實(shí)現(xiàn)。以下只是制定書(shū)寫(xiě)規(guī)范,特殊的需求要采用嵌SQL時(shí),應(yīng)遵從以下書(shū)定規(guī)范。大多數(shù)SQL語(yǔ)句與交互式SQL語(yǔ)句的區(qū)別僅僅是增加了一些子句或使用了一SQL在定義SQL語(yǔ)句時(shí),把變量和所要賦的值分兩行來(lái)表達(dá),把SQL的賦值同其變量定義UNIXSQLSelect語(yǔ)句格式標(biāo)Char*p_cSelStmt“SELECTColumn_name1,Column_name2 INTO:Parameter1,:Parameter2 FROMTable1A,Table2B WHEREA.Column_name=B.Column_name”;行關(guān)聯(lián),因?yàn)楫?dāng)超過(guò)五張表關(guān)聯(lián)時(shí)Oracle將不再做語(yǔ)句的優(yōu)化處理;對(duì)語(yǔ)句的性能可以通過(guò)“執(zhí)行計(jì)劃”來(lái),在SQL/PLUS下運(yùn)行:setautotraceon,然后運(yùn)行要的語(yǔ)句,setautotraceoffUpdate語(yǔ)句格式標(biāo)Char*p_cUpdStmt“UPDATETableSet \Column_name1=:Parameter1,\Column_name2=:Parameter2 WHEREColumn_name=:Pareameter”;Delete語(yǔ)句格式標(biāo)Char*p_cDelStmt“DELETEfromTableName WHEREColumn_name1=:Parameter1,Column_name2=Insert語(yǔ)句格式標(biāo)Char*p_cInsStmt“INSERTINTOTableName(Column_name1,Column_name2)\Values(:Parameter1,:Parameter2);“日期、時(shí)間使用在每個(gè)SQL語(yǔ)句中,需要用到時(shí)間值的,都以如下格式出入:的動(dòng)作都通過(guò)系統(tǒng)時(shí)間(sysdate)來(lái)。JDBC&Oracle使用關(guān)閉自動(dòng)提交功能,提高系統(tǒng)性了獲得更好的性能可以通過(guò)調(diào)用帶布爾值false參數(shù)的Connection類的 值得注意的是,一旦關(guān)閉了自動(dòng)提交功能,就需要通過(guò)調(diào)用Connection類在動(dòng)態(tài)SQL或有時(shí)間限制令中使用Statement對(duì)在執(zhí)行SQL命令時(shí),有二種選擇:可以使用PreparedStatement對(duì)象,也可以解析和編譯。因此,在有時(shí)間限制的SQL操作中,除非成批地處理SQL命令,應(yīng)當(dāng)考慮使用Statement對(duì)象。在成批處理重復(fù)的或更新操作中使用PreparedStatement對(duì)StatementCallableStatementPreparedStatement對(duì)象才真正地支持批處理??梢允褂胊ddBatch()和executeBatch()方法選擇標(biāo)準(zhǔn)的JDBCPreparedStatementsetExecuteBatch()方法和標(biāo)準(zhǔn)的executeUpdate()方法選擇速度更快的OracleOracle專有的批處理機(jī)setExecuteBatch():PreparedStatementpstmt3Dnull;try{}。命令執(zhí)行,標(biāo)準(zhǔn)的executeUpdate()方法就會(huì)被作為批處理送到數(shù)據(jù)庫(kù)中可以通過(guò)PreparedStatementsendBatch()方法隨時(shí)傳輸批處理任務(wù)。。利用SQL完成數(shù)據(jù)庫(kù)內(nèi)的操要充分利用SQLJava等過(guò)數(shù)據(jù),最后,編程創(chuàng)建了獨(dú)立的UPDATE命令來(lái)成批地更新第一個(gè)表中的數(shù)據(jù)。set子句中使用多列子查詢而在一個(gè)UPDATESQLSERVER與ORACLE數(shù)據(jù)庫(kù)之英文命名全部大寫(xiě),單詞之間用下劃線、為了書(shū)寫(xiě)規(guī)范在表名字段名過(guò)程命名時(shí),采用的英文單詞全部使用大寫(xiě),、VARCHAR類型字段最長(zhǎng)為為了考慮兼容ORACLE數(shù)據(jù)庫(kù)的VARCHAR所有數(shù)值型的字段使用number(x)/索引名為索引名為IDX_TableName[_x],例如IDX_
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊頂購(gòu)銷合同范本
- 各種文件合同范本
- 超齡人員勞務(wù)合同范本
- 配音演員合同范本
- 名創(chuàng)優(yōu)品合同范例
- 合伙企業(yè)分廠合同范本
- 代理小吃送貨合同范例
- 合同范本訂立下述合同
- 合伙加盟合同范本
- 廁所防水補(bǔ)漏合同范本
- 城市軌道交通乘客服務(wù)課件(完整版)
- 圍手術(shù)期肺部感染
- 北師大版語(yǔ)文選修《蕭蕭》ppt課件1
- 大學(xué)生職業(yè)素養(yǎng)課件-5第五單元學(xué)會(huì)有效溝通-PPT課件
- 煤礦2021年重大安全風(fēng)險(xiǎn)分析預(yù)判防控報(bào)告全文
- 《傷逝》_魯迅課件__大學(xué)語(yǔ)文(基礎(chǔ)教育)
- 《談骨氣》課文閱讀(共2頁(yè))
- 高考成績(jī)證明模板
- 蝴蝶蘭PPT課件
- 賓館做房記錄表
- 工業(yè)管道檢查報(bào)告
評(píng)論
0/150
提交評(píng)論