- 劍破冰山:Oracle開發(fā)藝術
- 盧濤
- 907字
- 2018-12-27 20:04:28
1.2 書寫規(guī)范
丑陋的書寫規(guī)范不僅可讀性較差,而且給人以敬而遠之的感覺,就算你是大俠也不行;而良好的書寫規(guī)范則給人以享受和藝術的體驗。
1.2.1 大小寫風格
規(guī)則1.2.1.1
所有數(shù)據(jù)庫關鍵字和保留字均使用大寫;關于字段、變量的大小寫風格在1.4節(jié)詳細介紹。
1.2.2 縮進風格
規(guī)則1.2.2.1
程序塊嚴格采用縮進風格書寫,保證代碼清晰易讀,風格一致,縮進格數(shù)統(tǒng)一為2/4個。
必須使用空格,不允許使用【Tab】鍵。以免在用不同的編輯器閱讀程序時,因【Tab】鍵所設置的空格數(shù)目不同而造成程序布局不整齊。
規(guī)則1.2.2.2
當同一條語句需要占用多于一行時,每行的其他關鍵字與第一行的關鍵字進行右對齊。
IF flag=1 THEN SELECT username --同上一行相比縮進4個空格 INTO vuserinfo --INTO與SELECT進行右對齊 FROM userinfo --FROM與SELECT進行右對齊 WHERE userid=:iuserid; --WHERE與SELECT進行右對齊 END IF;
1.2.3 空格及換行
規(guī)則1.2.3.1
不允許把多個語句寫在一行中,即一行只寫一條語句。
規(guī)則1.2.3.2
避免將復雜的SQL語句寫到同一行,建議要在關鍵字和謂詞處換行。
規(guī)則1.2.3.3
相對獨立的程序塊之間必須加空行。
BEGIN、END獨立成行。
規(guī)則1.2.3.4
太長的表達式應在低優(yōu)先級操作符處換行,操作符或關鍵字放在新行之首。劃分出新行應當適當?shù)乜s進,使排列整齊,語句可讀。
當不同類型的操作符混合使用時,建議使用括號進行隔離,以使代碼清晰。
規(guī)則1.2.3.5
減少控制語句的檢查次數(shù),例如,在IF…ELSE控制語句中,應將最常用的符合條件前置以被檢查到。
DECLARE --定義局部變量 vFlag VARCHAR2(10); --判斷標志 … BEGIN IF ((a=b AND a=c AND a=d) OR --在OR處斷行,可使得邏輯更為清晰 (a=e AND e=f)) THEN --Process something IF vFlag=1 THEN --vFlag=1為經(jīng)常出現(xiàn)的條件,可有效減少判斷檢查次數(shù) --Process something ELSIF vFlag=2 THEN --vFlag=2為次之出現(xiàn)的條件 --Process something ELSE --Process something END IF;
1.2.4 其他
規(guī)則1.2.4.1
避免使用SELECT * 語句;不要用*來代替所有字段,應給出字段列表,以避免在表結構發(fā)生變化時應用程序出現(xiàn)無法識別的情況。
規(guī)則1.2.4.2
INSERT語句必須給出字段列表,以避免在表結構發(fā)生變化時發(fā)生編譯錯誤。
規(guī)則1.2.4.3
當一個PL/SQL或SQL語句中涉及多個表時,始終使用別名來限定表名和字段名,這使其他人閱讀起來更方便,避免了含義模糊的引用,并能夠在別名中清晰地判斷出表名和相關字段名。
規(guī)則1.2.4.4
確保變量和參數(shù)在類型和長度上與表數(shù)據(jù)列相匹配。如果與表數(shù)據(jù)列寬度不匹配,則當較寬或較大的數(shù)據(jù)傳進來時會產(chǎn)生運行異常。
DECLARE --定義相關表字段變量 vDeptNo salary.Deptno%type; --not VARCHAR2(10),以適應變化 vEmployeeNo salary.EmployeeNo%type; --not VARCHAR2(10),以適應變化 vSalary salary.Salary%type; --not NUMBER,以適應變化 BEGIN --Process something END;
- GitHub Essentials
- 數(shù)據(jù)可視化:從小白到數(shù)據(jù)工程師的成長之路
- 數(shù)據(jù)庫技術與應用教程(Access)
- Google Visualization API Essentials
- 醫(yī)療大數(shù)據(jù)挖掘與可視化
- 數(shù)據(jù)結構與算法(C語言版)
- Spark核心技術與高級應用
- Power BI商業(yè)數(shù)據(jù)分析完全自學教程
- Python數(shù)據(jù)分析與挖掘實戰(zhàn)(第3版)
- SQL Server 2012數(shù)據(jù)庫管理教程
- Python數(shù)據(jù)分析與數(shù)據(jù)化運營
- 數(shù)據(jù)分析師養(yǎng)成寶典
- Unity Game Development Blueprints
- Oracle 內(nèi)核技術揭密
- 碼上行動:利用Python與ChatGPT高效搞定Excel數(shù)據(jù)分析