国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看
打開APP
未登錄
開通VIP,暢享免費(fèi)電子書等14項超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
oracle命名規(guī)范與保留字介紹!
pengx
>《MySQL/Oracle》
2011.07.18
關(guān)注
一、 命名約定
1
. 是指數(shù)據(jù)庫、數(shù)據(jù)庫對象如TABLE、SEQUENCE、
PROCEDURE
、COLUMN等的命名約定;
2
. 命名富有意義英文詞匯,除個別通用的(見列表),要避免使用縮寫),多個單詞組成的,中間以下劃線分割;
3
. 除數(shù)據(jù)庫名稱長度為1-8個字符,其余為1-30個字符,
Database
link名稱也不要超過30個字符;
4
. 命名只能使用英文字母,數(shù)字和下劃線;
5
. 避免使用Oracle的保留字如level、關(guān)鍵字如type(見列表);
6
. 各表之間相關(guān)列名盡量同名;
7
. 數(shù)據(jù)庫的命名:網(wǎng)上數(shù)據(jù)庫命名為“OLPS”+表示站點(diǎn)(SITE,以下同)的2-4個字符,后臺數(shù)據(jù)庫命名為“BOPS”+表示站點(diǎn)的2-4個字符。測試數(shù)據(jù)庫命名為“OLPS
|
BOPS”+“TEST”, 開發(fā)數(shù)據(jù)庫命名為“OLPS
|
BOPS”
+
“TEST”,用模式(
SCHEMA
/
USER
)的不同來區(qū)分不同的站點(diǎn)。
8
. INDEX命名:table_name
+
column_name
+
index_type(
1
byte)
+
idx,各部分以下劃線(_)分割。多單詞組成的column name,取前幾個單詞首字母,加末單詞組成column_name。如:sample表member_id上的index: sample_mid_idx news表title上的unique
index
:news_titile_uidx;
9
. SEQUENCE命名:seq_
+
table_name;
二、 注釋說明
1
. 本注釋說明主要用于PL
/
SQL程序及其它SQL文件,其它可作參考;
2
. SQLPLUS接受的注釋有三種:
―― 這兒是注釋
/* 這兒是注釋 */
REM 這兒是注釋
3
. 開始注釋,類似JAVAK中的開始注釋,主要列出文件名,編寫日期,版權(quán)說明,程序功能以及修改記錄:
REM
REM $Header: filename, version, created date,auther
REM
REM Copyright
REM
REM
FUNCTION
REM
function
explanation
REM
REM NOTES
REM
REM MODIFIED?。▂y
/
mm
/
dd)
REM who
when
-
for
what, recently goes first
4
. 塊注釋,如表注釋,PROCEDURE注釋等,同JAVA:
/**/
/*
* This table is for TrustPass
* mainly store the information
* of TrustPass members
*/
5
. 單行注釋,如列注釋:
login_id
VARCHAR2
(
32
)
NOT
NULL
,
--
會員標(biāo)識
三、 縮進(jìn)
低級別語句在高級別語句后的,一般縮進(jìn)4個空格:
DECLARE
v_MemberId
VARCHAR2
(
32
),
BEGIN
SELECT
admin_member_id
INTO
v_MemberId
FROM
company
WHERE
id
=
10
;
DBMS_OUTPUT.PUT_LINE(v_MemberId);
END
;
同一語句不同部分的縮進(jìn),如果為sub statement,則通常為2個空格,如果與上一句某部分有密切聯(lián)系的,則縮至與其對齊:
BEGIN
FOR
v_TmpRec
IN
(
SELECT
login_id,
gmt_created,
--
here indented as column above
satus
FROM
member
--
sub statement
WHERE
site
=
'
china
'
AND
country
=
'
cn
'
)
LOOP
NULL
;
END
LOOP;
END
;
四、 斷行
• 一行最長不能超過80字符
• 同一語句不同字句之間
• 逗號以后空格
• 其他分割符前空格
SELECT
offer_name
||
'
,
'
||
offer_count
as
offer_category,
id
FROM
category
WHERE
super_category_id_1
=
0
;
五、 大小寫
屬于ORACLE的關(guān)鍵字大寫,表名、列名等小寫。
六、 列類型的選擇
• 用CHAR(
1
)代替布爾值;
• 應(yīng)盡量使用VARCHAR2代替CHAR類型;
•
VARCHAR
(
2
)最多4000字符;
• DATE精確到微秒,而非天;
• 使用CLOB代替LONG,BLOB代替LONG
RAW
;
• ORACLE只有NUMBER一種數(shù)據(jù)類型,使用時請給定長度;
七、 主鍵選擇
選擇有意義的,不太長且能唯一標(biāo)識記錄行的列做主鍵,沒有這種列時,才考慮使用SEQUENCE做主健。
八、 列長度的選擇
應(yīng)當(dāng)根據(jù)實(shí)際需要選擇列長度。有對應(yīng)web 頁面的,與頁面上對應(yīng)列長度一致。
對數(shù)據(jù)的驗(yàn)證除數(shù)據(jù)庫端實(shí)現(xiàn)外還要盡可能在表現(xiàn)層控制。
九、 使用SQL語句的約定
1
. 盡量避免在循環(huán)中使用SQL語句。
2
. 避免在WHERE字句中對列施以函數(shù):
SELECT
?。?nbsp;
FROM
service_promotion
WHERE
TO_CHAR(gmt_modified,’yyyy
-
mm
-
dd’)
=
‘
20001
-
09
-
01
’;
而應(yīng)使用:
SELECT
*
FROM
service_promotion
WHERE
gmt_modified
>=
TO_DATE(‘
2001
-
9
-
01
’,’yyyy
-
mm
-
dd’)
AND
gmt_modified
<
TO_DATE(‘
2001
-
9
-
02
’,’yyyy
-
mm
-
dd’);
3
. 避免使用數(shù)據(jù)庫的類型自動轉(zhuǎn)換功能:
SELECT
*
FROM
category
WHERE
id
=
‘
123
’;
--
id’s type is number
4
. 避免無效的連接:
SELECT
count
(
*
)
FROM
offer a, count_by_email b
WHERE
a.email(
+
)
=
b.email;
5
. 連接(
join
)時要使用別名:
SELECT
a.
*
,b.offer_count(
*
)
FROM
offer a, count_by_email b
WHERE
a.email(
+
)
=
b.email;
6
. 取TABLE 的META信息:
SELECT
*
FROM
table_name
WHERE
rowid
is
null
(
or
rownum
=
1
or
pk
=
impossible_value);
可考慮使用:
SELECT
*
FROM
table_name
WHERE
1
=
0
;
十、 關(guān)于ALIBABA表的約定
如果使用ALIBABA BZO,設(shè)表至少有如下字段:
site
VARCHAR2
(
32
)
gmt_create DATE
gmt_modified DATE
如果從IdBizObject繼承,則還有一個NUMBER型的列,通常是主鍵,并與某一個SEQUENCECF 對應(yīng);如果從StrIdBizObject繼承,則還有一個VARCHAR2型的列。
十一、 列值約定
1
. 有固定值列表的列,如status, action, site, 其值取小寫;
2
. 應(yīng)盡可能選擇數(shù)字來代表固定值列表中的值,相應(yīng)的列定義為NUMBER型;
3
. 用CHAR(
1
)表示布爾值的取大寫:“Y”,“N”。
十二、 關(guān)于表重復(fù)屬性的定義
不能有多擇一的重復(fù)屬性列;
對于能多選的重復(fù)屬性列,如果不做查詢列并且重復(fù)次數(shù)較多,應(yīng)使用ID_VARRAY代替,如要用作查詢列,重復(fù)次數(shù)多的,應(yīng)另建一表,次數(shù)少的且列值為二擇一時,應(yīng)使用NUMBER類型,加位操作。
十三、 數(shù)據(jù)修改約定
發(fā)現(xiàn)Production環(huán)境中數(shù)據(jù)有誤,需要改正的,應(yīng)在RA TERMINAL上提交數(shù)據(jù)更新表單,由數(shù)據(jù)庫操作員在當(dāng)日17時前修改完畢。
數(shù)據(jù)庫更程序更新的結(jié)構(gòu)變動及數(shù)據(jù)更新,類似處理。
提交SQTT測試需要準(zhǔn)備數(shù)據(jù)或更新結(jié)構(gòu)的,暫時先寫入測試請求中,由SQTT同志MAIL(注明測試請求表單鏈接即可)通過數(shù)據(jù)庫操作員修改數(shù)據(jù)庫。待內(nèi)部網(wǎng)TEAM增加新的表單后,測試請求分開提交。
十四、 數(shù)據(jù)庫設(shè)計流程
在新項目設(shè)計階段會議,應(yīng)有DBA參加。在SCHEMA確定以后方可開始編碼。
縮寫字列表:
payment pymt
my trade activity mta
特殊字列表:
ACCESS
DECIMAL
INITIAL
ON
START
ADD
NOT
INSERT
ONLINE SUCCESSFUL
ALL
DEFAULT
INTEGER
OPTION
SYNONYM
ALTER
DELETE
INTERSECT
OR
SYSDATE
AND
DESC
INTO
ORDER
TABLE
ANY
DISTINCT
IS
PCTFREE
THEN
AS
DROP
LEVEL
PRIOR
TO
ASC
ELSE
LIKE
PRIVILEGES
TRIGGER
AUDIT EXCLUSIVE LOCK
PUBLIC
UID
BETWEEN
EXISTS
LONG
RAW
UNION
BY
FILE
MAXEXTENTS RENAME
UNIQUE
FROM
FLOAT
MINUS RESOURCE
UPDATE
CHAR
FOR
MLSLABEL
REVOKE
USER
CHECK
SHARE MODE ROW VALIDATE
CLUSTER
GRANT
MODIFY ROWID
VALUES
COLUMN
GROUP
NOAUDIT ROWNUM
VARCHAR
COMMENT
HAVING
NOCOMPRESS ROWS
VARCHAR2
COMPRESS IDENTIFIED NOWAIT
SELECT
VIEW
CONNECT IMMEDIATE
NULL
SESSION WHENEVER
CREATE
IN
NUMBER
SET
WHERE
CURRENT
INCREMENT
OF
SIZE
WITH
DATE
INDEX
OFFLINE
SMALLINT
CHAR
VARHCAR
VARCHAR2
NUMBER
DATE
LONG
CLOB BLOB BFILE
INTEGER
DECIMAL
SUM
COUNT
GROUPING
AVERAGE
TYPE
十五、oracle中的保留字可以參見select
*
from
v$reserved_words;數(shù)據(jù)字典表中所見.
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
oracle數(shù)據(jù)庫開發(fā)的一些經(jīng)驗(yàn)積累
ORACLE中VARCHAR2類型的字段長度是按照byte來定義的-一個容易被忽略的問題 ...
DUAL
美創(chuàng)科技運(yùn)維日記|Oracle字段長度引起的思考length()和lengthb()
Oracle初始(第一天)
oracle數(shù)據(jù)庫中varchar2陷阱
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點(diǎn)擊這里,查看已保存的文章
導(dǎo)長圖
關(guān)注
一鍵復(fù)制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×