技術開發人員SQL規範

2021-05-23 01:07:40 字數 2180 閱讀 7343

表命名是以英文名稱為原則,表示該錶的具體意義,例如商品表可以叫item,商品表可以叫item_image。

如果公司業務複雜,資料庫過多,schema也比較多,則要根據schema的來命名,例如:在crm下面可以用crm開頭命名crm_user.

臨時表應該以tmp開頭tmp_user,這樣的表一段時間後將會清除。

備份資料使用的表應該使用bak開頭,這樣的表在被確認不需要後將被清除。

注:表的命名不能超過30個字元 

表達該字段的含義

不能用oracle中的保留字

注釋一定要詳細加上,如status 狀態,0 有效,1刪除

注:字段長度也盡量簡化(如crm_test_times_currently,太長)

主鍵(primary key)索引

pk_表名_列名

唯一鍵(unique key)索引

uk_表名_列名

普通索引

ind_表名_列名

注:索引的命名不能超過30個字元(在索引中的列名可以簡寫,一般情況下不簡寫索引中的表名)

過程的命名規則

以sp_開頭,過程中要註解此過程的作者,編寫時間,此過程的功能

函式的命名規則

以fun_開頭,函式中要註解此函式的作者,編寫時間,此函式的功能

變數的命名規則

本地變數以l_開頭;

傳遞引數:p_變數名_in  (傳入)

p_變數名_out(傳出) 

游標型別cur_開頭;

序列的命名

seq_表名_列名

如何在程式中使用序列所產生的值

insert into test(id,nick)

values(seq_test_id.nextval,'test');

如何查詢序列的當前值:

select seq_test_id.currval from dual;

sql語句所有表名,欄位名全部小寫,sql保留字大寫;

select  *查詢語句不允許出現,要明確寫查詢哪些列;

連線符or、in、and、以及=、<=、>=等前後加上乙個空格 

sql語句注意縮排

where子句書寫時,每個條件佔一行,語句另起一行時,以保留字或者連線符開始,連線符右對齊

多表連線時,使用表的別名來引用列

sql示例:

select aa.title,aw.bid,aw.closingdate,u.nick

from t_users u,

t_test tt

t_item aa

where u.id = tt.seller

and aw.auction = aa.id

and u.nick =『test』;

where條件中儘量減少使用常量比較,改用繫結變數 

儘量減少order by和group by排序操作 ,有些排序操作可以由應用程式完成

如必須使用排序操作,請遵循如下規則 :

1.排序列上有索引

2.如結果集不需唯一,使用union all代替                  

union 

盡量避免對索引列進行計算,或者對列進行函式操作然後查詢 

例如:select t.id from test t 

where upper(t.nick) = :1

正確的是:

select t.id from test t 

where t.nick = upper(:1)

注意繫結變數與索引列資料型別的一致性

表test欄位id的型別為number

錯誤的是:

select  t.subject from test 

where t.id=『5』; 

此寫法將不會走id欄位上的索引,執行計畫為全表掃瞄

正確的是:

select  t.subject from test 

where t.id=5; 

分頁sql寫法

select * from (select t.*,rownum as rn from (select id,name,*** from test order by id desc) t where rownum < 21) where rn >19;

適當使用提示優化

select /* + index(a idx_test)*/ count(*) from test a;

如何成為優秀的技術開發人員?

1.保持學習 乙個非常重要的觀點是 如果你停留在乙個地方不前,並不代表你能一直呆在那裡,而是代表你正在落後 不進則退 往前進並不意味著你是就能進步 這至少你不會淪落到最後 付出就會有收穫 程式設計師為了保持向前發展,就需要不斷學習 我們需要的不是慢慢的往前走,而是我們要奔跑起來!下面列出這方面的幾個...

如何成為優秀的技術開發人員?

1.保持學習 乙個非常重要的觀點是 如果你停留在乙個地方不前,並不代表你能一直呆在那裡,而是代表你正在落後 不進則退 往前進並不意味著你是就能進步 這至少你不會淪落到最後 付出就會有收穫 程式設計師為了保持向前發展,就需要不斷學習 我們需要的不是慢慢的往前走,而是我們要奔跑起來!下面列出這方面的幾個...

IT開發人員

其路五 轉行到市場 絞盡腦汁的想想,我所知道的人之中只有兩個開發人員去了市場,這兩個人都不能說是朋友,認識而已。他們都是主動要求去了市場,結果是這兩個人均在市場都是乾到一年左右,然後都自已開公司了。呵呵,很奇怪,極高的轉行成功率!不過仔細想想,我對這兩個人的思路佩服的五體投地。能下決心仍掉每月5 6...