資料庫編程中如果出現了醜陋的書寫規範不僅可讀性較差,而且給人以敬而遠之的感覺,就是您是大俠也不行啊;而良好的書寫規範則給人以享受和藝術的體驗。下文中就為大家介紹資料庫編程書寫規範,供大家參考。
大小寫風格
規則
所有資料庫關鍵字和保留字均使用大寫;關於欄位、變數的大小寫風格在1.4 詳細介紹。
縮排風格
規則
程式塊嚴格採用縮排風格書寫,保證代碼清晰易讀,風格一致,縮排格數統一為2 /4 個。
必須使用空格,不允許使用TAB 鍵。以免用不同的編輯器閱讀程式時,因TAB 鍵所設定的空格數目不同而造成程式布局不整齊。
規則
同一條語句需要佔用多於一行時,每行的其它關鍵字與第一行的關鍵字進行靠右對齊。
IF flag=1 THEN
SELECT username -- 同上一行相比縮排4 個空格
INTO vuserinfo --INTO 與SELECT 進行靠右對齊
FROM userinfo --FROM 與SELECT 進行靠右對齊
WHERE userid=:iuserid; --WHERE 與SELECT 進行靠右對齊
END IF;
空格及換行
規則
不允許把多個語句寫在一行中,即一行唯寫一條語句。
規則
避免將複雜的SQL 陳述式寫到同一行,建議要在關鍵字和謂詞處換行。
規則
相對獨立的程式塊之間必須加空行。
BEGIN 、END 獨立成行
規則
太長的運算式應在低優先順序操作符處換行,操作符或關鍵字放在新行之首。劃分出新行應當適當地縮排,使排版整齊,語句可讀。
不同類型的操作符混合使用時,建議使用括弧進行隔離,以使代碼清晰。
規則
減少控制語句的檢查次數,如在 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 為經常出現之條件,可有效減少判斷檢查次數
--Process something
ELSIF vFlag=2 THEN --vFlag=2 為次之出現的條件
--Process something
ELSE
--Process something
END IF;
其它
規則
避免使用SELECT * 語句;不要用* 來代替所有欄位,應給出欄位列表,以避免表結構發生變化時應用程式出現無法識別的情況。
規則
INSERT 語句必須給出欄位列表,以避免表結構發生變化時發生編譯錯誤。
規則
當一個PL/SQL 或SQL 陳述式中涉及到多個表時,始終使用別名來限定表名和欄位名,這使其它人閱讀起來更方便,避免了含義模糊的引用,並能夠別名中清晰地判斷出表名和相關欄位名。
規則
確保變數和參數在類型和長度與表資料列類型和長度相匹配。說明:如果與表資料列寬度不匹配,則當較寬或較大的資料傳進來時會產生運行異常。
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;
本文比較適合初學者學習,是大家掌握資料編寫的最基本的知識,希望上文中介紹到的內容對大家能夠有所協助。