




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、廈門智業(yè)軟件工程有限公司.研發(fā)部ZHIS4項(xiàng)目組文檔密級(jí)公開()普通()秘密()機(jī)密()絕密()Oracle數(shù)據(jù)庫編程規(guī)范文檔編號(hào):文檔歸類:作 者:李程揚(yáng)創(chuàng)建時(shí)間:2005-11-14修改時(shí)間:2005-11-15版 本 號(hào):v1.0文檔傳閱:一、 數(shù)據(jù)庫對(duì)象創(chuàng)建及命名規(guī)范1、 數(shù)據(jù)庫字段及對(duì)象命名規(guī)范a. 數(shù)據(jù)庫命名規(guī)范與PB編程規(guī)范對(duì)命名方式的約定可相互參照;b. 命名單詞間分隔用下劃線_,盡可能使用與業(yè)務(wù)相匹配的單詞或其縮寫;c. 絕對(duì)不允許使用拼音首碼及簡(jiǎn)單數(shù)字的命名方式;d. Oracle對(duì)于對(duì)象或字段名稱長度有限制,最多31個(gè)字符;2、 字段定義及類型說明a. 字段定義僅能使用以
2、下類型i. date:日期時(shí)間類型,存入日期字段的數(shù)據(jù)若未指明時(shí)間,時(shí)間缺省就是00:00:00;若未指明日期,則日期缺省是1900-01-01;對(duì)于年份number(4,0)與月份number(6,0)這類數(shù)據(jù),一般用number類型定義;ii. number:數(shù)值類型,字段所占空間與每一行數(shù)據(jù)相關(guān),即有多少存多少;要注意其定義小數(shù)位是包含在總長度中,如number(12,2)總長度為12位,其中小數(shù)占2位;iii. char:定長字符串類型,不論字符串信息多少都要占用所定義長度的空間,不足的部分用空格填充;對(duì)于一些更新操作比varchar2效率高;長度限制為255;iv. varchar2
3、:非定長字符串類型,字符串信息多少就占多少空間,所以對(duì)于此類型數(shù)據(jù)在存入數(shù)據(jù)庫前要去空格,以防止多余空格造成字段關(guān)聯(lián)錯(cuò)誤;相比char可節(jié)省很多存儲(chǔ)空間,某種程序上可提高網(wǎng)絡(luò)傳輸效率;長度限制為4000個(gè)字符;v. clob:一般存大于4000個(gè)字節(jié)的字符串信息,如數(shù)據(jù)窗口的語法;vi. blob:一般存二進(jìn)制數(shù)據(jù),如圖片;b. 對(duì)于字符串類型,除數(shù)據(jù)固定長度字段(如char(1)、SICK_ID),其它情況都必須使用varchar2類型;c. 對(duì)于number與varchar2類型,在定義時(shí)要預(yù)留足夠的長度,因?yàn)檫@兩種類型都是按實(shí)際數(shù)據(jù)來分配存儲(chǔ)空間,這樣才能避免數(shù)據(jù)需求變長,字段長度修改造
4、成程序錯(cuò)誤(數(shù)據(jù)窗字段及數(shù)值變量小數(shù)位定義);d. 應(yīng)盡量使用number類型定義代碼、狀態(tài)字段;相比char或varchar2,這可最大程度地節(jié)省空間,并可顯著提度檢索效率;當(dāng)然,同類型已定義的字段,為兼容原先設(shè)計(jì),還是必須使用舊的類型定義;e. 字段命名約定i. 字段名稱不必像PB變量使用前綴來標(biāo)識(shí)其數(shù)據(jù)類型;ii. 字段常用后綴如下 ID/No表示唯一的序列號(hào)標(biāo)識(shí);其中ID多用于表示對(duì)人或物的標(biāo)識(shí),即指的是一種標(biāo)志(如Sick_ID);而No多用于對(duì)連續(xù)號(hào)或流水號(hào)的標(biāo)識(shí)(如單據(jù)號(hào)Apply_No) Code表示項(xiàng)目代碼(如項(xiàng)目代碼Item_Code) Name表示名稱(如項(xiàng)目名稱Item
5、_Name) Class表示類別(如單據(jù)類別Apply_Class) Operator表示操作員(類型用varchar(27),如Apply_Operator) Time表示日期或日期時(shí)間(如Audit_Time) Dept表示科室(如開單科室Apply_Dept) Flag表示標(biāo)志(字段類型用char(1),值為Y或N) Status表示狀態(tài)(字段類型用char(1))iii. 常見業(yè)務(wù)字段名稱及類型定義如下字段名字段中文名字段類型說明sick_id病人IDchar(10)兼容原有設(shè)計(jì)ic_card_id就診卡號(hào)varchar2(30)兼容原有設(shè)計(jì)item_code項(xiàng)目代碼varchar2(
6、14)兼容原有設(shè)計(jì)(診項(xiàng)或藥品代碼)Item_name項(xiàng)目名稱varchar2(400)item_spec項(xiàng)目規(guī)格varchar2(200)item_class類別Varchar2(10)兼容原有設(shè)計(jì)item_price單價(jià)number(15,6)item_unit單位varchar2(8)兼容原有設(shè)計(jì)operator操作者varchar2(27)兼容原有設(shè)計(jì)dept_code科室代碼varchar2(8)兼容原有設(shè)計(jì)cost/charges金額number(15,2)apply_no單據(jù)號(hào)varchar2(12)兼容原有設(shè)計(jì)quantity數(shù)量number(15,4)remark備注varc
7、har2(4000)valid_flag有效標(biāo)志Number(1,0)spell_code拼音首碼varchar2(100)wbzx_code五筆首碼varchar2(100)sequence_no排序號(hào)Number(10,0)code代碼Number(4,0)字典代碼class類別Number(10,0)類別代碼3、 數(shù)據(jù)庫對(duì)象定義說明:創(chuàng)建對(duì)象時(shí)一定要指定是在哪個(gè)模式下面a. 表i. 下面列出建表步驟(一般在PB6中新建表,再拷出相應(yīng)建表語法) 建表語法 創(chuàng)建主鍵及索引 創(chuàng)建同義詞 對(duì)象授權(quán)(所有新建對(duì)象都必須授權(quán)給zhiydba)ii. 對(duì)于表命名有以下常用后綴 _master:主表 _
8、detail:細(xì)表 _record:記錄表 _dict:系統(tǒng)字典/用戶字典 _config:用戶配置表iii. 不推薦使用表外鍵約束,也不推薦除空值以外的其它約束檢查,這類約束判斷一般在程序中處理;b. 主鍵:一種特殊的索引i. 主鍵名都是以pk_作為前綴,后面一部分用表名,即pk_+表名ii. 所有表都必須創(chuàng)建主鍵,否則這些表就沒辦法做更新操作c. 索引i. 索引名以idx_作為前綴,后面一部分用表名+索引相關(guān)列名或其縮寫ii. 創(chuàng)建索引時(shí)一定要記得指明其所在模式(一般與表在同一模式下),這一點(diǎn)程序員常會(huì)遺漏;iii. 索引也要區(qū)分是唯一索引還是可重復(fù)索引;iv. 要查詢的列盡可能創(chuàng)建索引,
9、一般不推薦使用多列組合索引,而應(yīng)分開建立索引;如病人ID或查詢時(shí)間字段;另外,用到組合索引時(shí)要注意索引列的順序;v. 一個(gè)表索引最多不能超過7個(gè),否則會(huì)影響數(shù)據(jù)更新效率,且占用存儲(chǔ)空間,即:索引越多、查詢效率高、但更新操作慢、存儲(chǔ)占用高;vi. 對(duì)于值內(nèi)容單一(如只有0與1)或大部分?jǐn)?shù)據(jù)是空值的字段不用建索引;對(duì)于某些數(shù)據(jù)量很少的表(如字典),也是不用建索引;d. 視圖:其命名以v_作為前綴,統(tǒng)一建在zhiydba模式下(可省去授權(quán))e. 序列號(hào):其命名以_seq作為后綴,統(tǒng)一建在zhiydba模式下;主要用于數(shù)據(jù)表的主鍵字段取唯一值(如單據(jù)號(hào)),對(duì)于字典代碼就沒必要用序列號(hào);f. 同義詞:創(chuàng)
10、建相應(yīng)對(duì)象的同義詞主要是便于編程(public),做到對(duì)象模式無關(guān)g. 用戶:即模式h. 函數(shù)及存儲(chǔ)過程:除非開放接口給其它軟件供應(yīng)商,否則不使用這兩類對(duì)象,因?yàn)榘?package)就可代替其功能,并便于分類組織;i. 后臺(tái)包/Java包:不用深入了解,知道有這些東西就可;j. 后臺(tái)任務(wù)(Job):后臺(tái)計(jì)劃任務(wù)執(zhí)行,通過dba_jobs可查詢當(dāng)前在執(zhí)行任務(wù);k. 觸發(fā)器:Oracle的觸發(fā)器一般都認(rèn)為在事務(wù)處理上不安全,所以除非特殊接口,否則不準(zhǔn)使用觸發(fā)器;二、 Oracle常用函數(shù)1、 Oracle的PL/SQL語言是對(duì)SQL的過程性語言擴(kuò)展,當(dāng)前Oracle的SQL語法遵循SQL92標(biāo)準(zhǔn);
11、2、 完整PL/SQL函數(shù)集可查閱ResearchZHIS4_ToolsDatabaseOracle8i資料docserver.816a76989toc.htm3、 字符串相關(guān)函數(shù)a. |:字符串合并操作符b. trim:去字符串前后空格,一定要記住存取字符串?dāng)?shù)都要調(diào)用此函數(shù)去空格c. substr:截取字符串的一部分內(nèi)容,也PB的mid函數(shù)功能一樣d. to_char:將數(shù)值型或日期型數(shù)據(jù)轉(zhuǎn)化為字符類型,如to_char(sysdate,yyyy-mm-dd hh24:mi:ss)e. lpad/rpad:在串值左/右重復(fù)填充指定的字符串,與PB的fill函數(shù)功能類似f. upper/low
12、er:字符串都轉(zhuǎn)為大寫/小寫4、 日期相關(guān)函數(shù)a. +/-:加/減天數(shù)操作符b. to_date:將字符串類型數(shù)據(jù)轉(zhuǎn)為日期型信息,如to_date(2005-11-15,yyyy-mm-dd)c. trunc:去掉時(shí)間那部分信息,常用于按日期檢索數(shù)據(jù)d. add_months:增加月份5、 數(shù)值相關(guān)函數(shù):a. to_number:將字符串類型數(shù)據(jù)轉(zhuǎn)為數(shù)值型,如to_number(to_char(operation_time,yyyymmdd)要注意,如果待轉(zhuǎn)化數(shù)據(jù)包含非數(shù)字內(nèi)容,就會(huì)報(bào)Oracle錯(cuò)誤b. trunc:按指定小數(shù)位精度截取6、 其它函數(shù)a. nvl:空值判斷,這是很常用的函數(shù);
13、對(duì)于PL/SQL的空串與空值是一樣的,即在SQL語法中沒必要像PB一樣判斷空串;b. decode:條件分支判斷,if elsec. sign:判斷數(shù)值的符號(hào),可用于或= to_date(2005-11-15,yyyy-mm-dd) and operation_time alter database mountb. 啟動(dòng)實(shí)例(控制文件):startup mount-alter database openc. 啟動(dòng)實(shí)例(數(shù)據(jù)文件):startup/startup opend. 關(guān)閉實(shí)例:shutdown immediate3、 數(shù)據(jù)庫備份機(jī)制:a. 硬件雙機(jī)熱備b. 軟件文件備份(在線熱備/離線冷備)c. 軟件導(dǎo)出備份(全庫導(dǎo)出/增量導(dǎo)出)4、 重建數(shù)據(jù)庫相關(guān)(詳細(xì)步驟參見 創(chuàng)建數(shù)據(jù)庫步驟.txt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧環(huán)衛(wèi)系統(tǒng)建設(shè)方案
- 竹筒酒行業(yè)研究報(bào)告
- 《會(huì)計(jì)信息系統(tǒng)應(yīng)用》課件 學(xué)習(xí)情境7 應(yīng)收款系統(tǒng)應(yīng)用
- 數(shù)字信號(hào)處理與通信技術(shù)指南
- 美食廣場(chǎng)裝修合同解除
- 健康飲食烹飪方法入門指南
- 現(xiàn)代農(nóng)業(yè)經(jīng)營管理策略方案
- 綠化專項(xiàng)施工方案
- 電商產(chǎn)業(yè)園可行性研究報(bào)告
- 施工方案和安全專項(xiàng)施工方案的區(qū)別
- 眼鏡學(xué)智慧樹知到答案2024年溫州醫(yī)科大學(xué)
- 日本宗教文化課件
- 赤潮綠潮生態(tài)模型
- 醫(yī)院臨床護(hù)理教學(xué)質(zhì)量督查表
- 唐詩里的中國(朗誦)
- Q∕SY 01128-2020 錄井資料采集處理解釋規(guī)范
- 中考滿分作文-難忘的風(fēng)景(6篇)
- 小學(xué)生寫作文的格子
- 城市道路平面交叉口設(shè)計(jì)形式與選擇解析
- 中學(xué)生學(xué)習(xí)方法主題班會(huì)ppt課件
- 輕松游戲——武松打虎
評(píng)論
0/150
提交評(píng)論