第2部分 資料庫SQL語言
資料庫指令碼檔案的布局
“沒有規矩,不成方圓”,規範資料庫指令碼檔案的代碼布局具有以下重要意義:
(1) 可表現出代碼良好的邏輯結構,提高代碼的準確性、連續性、可讀性及可維護性。
(2) 有利於提高產品的開發品質和效率,並降低開發成本。
(3) 對於開發人員來說,養成良好的指令碼編寫習慣有助於提高個人的資料庫指令碼編程水平,進而提高指令碼編程效率。
可見,統一的、良好的指令碼代碼布局和風格不僅僅是個人主觀美學或形式上的問題,而且影響到產品的品質,並涉及到自身指令碼編程能力的提高。
1. 指令碼布局順序概述
在實際的軟體開發項目中,統一規範指令碼布局順序可方便對代碼的閱讀,利於後續的維護及測試修改。可採用以下兩種方式來布局指令檔內容:
方式一:
檔案頭
初始化
使用者及存取權限的建立
資料表的建立
預存程序的建立
資料庫任務的建立
結束
方式二:
檔案頭
初始化
資料表的建立
預存程序的建立
資料庫任務的建立
使用者及存取權限的建立
結束
注意:
(1) 一個普通的指令檔包含了方式一和方式二中的7個部分。為了便於區分和閱讀,各個部分要使用註解區塊隔離開來(注釋符使用“--”)。
(2) “使用者及存取權限的建立”可以放在第三部分,也可以放在第六部分。
(3) 各部分前統一使用標註說明,相關內容必須寫在對應部分,如果相關內容為空白,也必須保留該部分的標註說明。
2. 指令碼布局樣本
採用方式一,基於Sybase資料庫實現的指令碼程式碼範例如下:
--*********************************************************************
--著作權 (C)2014, Zhou Zhaoxiong。
--資料庫版本: Sybase ASE Enterprise 15.0
--內容摘要:指令檔布局樣本
--作 者: Zhou Zhaoxiong
--完成日期: 20140616
--修改記錄1:
-- 修改日期:
-- 版本號碼:
-- 修改人:
-- 修改內容:
--**********************************************************************/
--**************************************************
-- initialization 初始化
--**************************************************
use master
go
use xxx -- 要使用的資料庫
go
checkpoint
go
dump tran xxx with no_log -- 日誌截斷處理
go
--************************************************************
-- user and right creation使用者及許可權的建立
--************************************************************
exec sp_addalias xxx, dbo
go
--***********************************************************************
-- table creation 資料表的建立
--***********************************************************************
--範例表tb_example
if exists(select 1 from sysobjects where id = object_id('tb_example'))
begin
drop table tb_example
end
go
create table tb_example
(
name varchar(30) not null, --名字
age int not null --年齡
)
go
--建立索引
create index idx_tb_example1 on tb_example(name)
go
--************************************************************
-- procedure creation 預存程序的建立
--************************************************************
--資訊查詢預存程序pr_selectinfo
--輸入參數:@v_name姓名,@v_age 年齡
--輸出參數:無
if exists (select 1 from sysobjects where id = object_id('pr_selectinfo'))
begin
drop procedure pr_selectinfo
end
go
create procedure pr_selectinfo
@v_name varchar(30), --姓名
@v_age int --年齡
as
begin
......
end
go
print 'create procedure pr_selectinfo ok'
go
--**************************************************
-- task creation 資料庫任務的建立
--**************************************************
……
--**************************************************
-- finalization 結束
--**************************************************
……
在實際的軟體項目中,對指令檔的布局都有其嚴格的規定,開發人員需要遵照編程規範來書寫指令碼代碼。這不僅有利於對代碼的閱讀和修改,也有利於團隊的技術交流與共用。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,號:245924426,歡迎關注!)