- 浏览: 1336381 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (471)
- 原创文章 (4)
- Database (84)
- J2SE (63)
- Web (26)
- Javascript (30)
- Lucene (11)
- os (13)
- 算法 (8)
- Webservice (1)
- Open projects (18)
- Hibernate (18)
- Spring (15)
- Css (2)
- J2ee (2)
- 综合技术 (18)
- 安全管理 (13)
- PatternsInJava (27)
- NIO (5)
- Ibatis (2)
- 书籍收藏 (1)
- quartz (7)
- 并发编程 (15)
- oracle问题 (2)
- ios (60)
- coco2d-iphone (3)
- C++ (6)
- Zookeeper (2)
- golang (4)
- animation (2)
- android (1)
最新评论
-
dandingge123:
【引用】限制UITextField输入长度的方法 -
qja:
...
对List顺序,逆序,随机排列实例代码 -
安静听歌:
现在在搞这个,,,,,哎~头都大了,,,又freemarker ...
通用大型网站页面静态化解决方案(一) -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Quartz 配置参考 -
马清天:
[b][/b][list][*]引用[u][/u][/list ...
通用大型网站页面静态化解决方案(一)
1、编写目的
使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2、适用范围
本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。
3、对象命名规范
3.1 数据库和SID
数据库名定义为系统名+模块名
★ 全局数据库名和例程SID 名要求一致
★ 因SID 名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符
3.2 表相关
3.2.1 表空间
★ 面向用户的专用数据表空间以用户名+_+data命名 ,如Aud 用户专用数据表空间可命名为Aud_data
★ 面向用户的专用索引表空间以用户名+_+idx命名
★ 面向用户的专用临时表空间以用户名+_+tmp命名
★ 面向用户的专用回滚段表空间以用户名+_+rbs 命名
★ 面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名
★ LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs
3.2.2 表空间文件
表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等
3.2.3 表
表命名要遵循以下原则:
★ 一般表采用“系统名+t_+模块名+_+表义名” 格式构成
★ 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成
★ 模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;
★ 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4 个字符加最后一个字符等)
★ 临时表采用“系统名+t_tmp_+表义名” 格式构成
★ 表的命名如
dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap) dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj) dft_tmp_hj: 系统名(电费 df)+tmp+表义名(合计hj)(此处为临时表) ★ 关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
3.2.4 属性(列或字段)
属性命名遵循以下原则:
★ 采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符
★ 属性名前不要加表名等作为前缀
★ 属性后不加任何类型标识作为后缀
★ 不要使用“ID”作为列名
★ 关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行
3.2.5 主键
★ 任何表都必须定义主键
★ 表主键命名为:“pk+_+表名(或缩写)+_+主键标识”如“pk_YHXX_IDKH”等
3.2.6 外键
表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识”如“fk_YHLX_YHXX_SFZH”等
3.2.7 CHECK约束
CHECK 约束命名为: “chk+_+CHECK约束的列名(或缩写)”
3.2.8 UNIQUE约束
UNIQUE 约束命名为: “unq+_+UNIQUE约束的列名(或缩写)”
3.2.9 索引
索引的命名为:“表名(或缩写)+_+列名+_idx”。其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成如yd_kh 表khid 上的index: yd_kh_khid_idx
3.2.10 触发器
★ AFTER型触发器
系统名+tr_+<表名>_+ +[_row]
★ BEFORE型触发器
系统名+tr_+<表名>_+bef_ +[_row]
★ INSTEAD OF型触发器
系统名+ti_+<表名>+_+ +[_row]
★ 各种类型的触发器中
i,u,d 分别表示insert、update 和delete行级触发器,后加_row 标识,语句级触发器不加,如 yddftr_CSH_i_row
3.2.11 簇
簇以簇中要存储的各个表(或表别名)及表间加and的组成 命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN
3.3 视图
视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似
3.4 序列
序列命名以seq_+含义名组成
3.5 同义词
同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀
3.6 存储对象相关
3.6.1 存储过程
存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。
3.6.2 函数
函数命名由“系统名+f+_+函数标识”组成
3.6.3 包
包命名由“系统名+pkg+_+包标识”组成
3.6.4 函数文本中的变量采用下列格式命名:
★ 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数
★ 过程变量命名采用“l+_+名称”形式
★ 全局包变量命名采用“g+_+名称”形式
★ 游标变量命名采用“名称+_+cur”形式
★ 常量型变量命名采用“c+_+名称”形式
★ 变量名采用小写,若属于词组形式,用下划线分隔每个单词
★ 变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE 方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化
3.7 用户及角色
★ 用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成
★ 角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成
3.8 数据库链接
★ 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成
★ 若远程服务器名和数据库名一致,上式“_+数据库名”部分省去
3.9 命名中的其它注意事项
★ 命名都不得超过30个字符。
★ 不要在对象名的字符之间留空格
★ 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突 4、 编码规范
4.1 一般性注释
4.1.1 注释尽可能简洁、详细而全面
4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出'
4.1.3 注释语法包含两种情况:单行注释、多行注释
单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。
4.2 函数文本注释
4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释 /************************************************* *********************** *name : --函数名 *function : --函数功能 *input : --输入参数 *output : --输出参数 *author : --作者 *CreateDate : --创建时间 *UpdateDate : --函数更改信息(包括作者、时间、更改内容等) ************************************************** ***********************/ CREATE [OR REPLACE] PROCEDURE dfsp_xxx … 4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
4.2.3 在每一个变量声明的旁边添加注释。说
明该变量要用作什么
通常,简单使用单行注释就行了,例如l_sfzh CHAR(11) --身份证号码
4.2.4 在块的每个主要部分之前添加注释
在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述
4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息
4.3 常用SQL 语句的编写规范
4.3.1 CREATE语句 4.3.2 SELECT语句 查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能):
★ 将SELECT 语句分为5部分:
(1) 由SELECT 开头,后跟一个显示查询结果的列表;
(2) 由FROM 开头,后跟一个或多个获取数据所涉及的表;
(3) 由WHERE 开头,后跟一个或多个确定所需值的条件;
(4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;
(5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。
★ 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 ★ 关键字用大写,列名和表名采用小写
★ 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行
★ 当语句的同一部分要延续到下一行时,按下列格式排列: ★ 将语句中WHERE 和AND 部分格式化,书写布局类似于 ★ 当语句中出现括号时,括号的两边不留空格
★ 在SQL 语句使用运算符时,操作两边应各留一个空格,如 4.3.3 INSERT语句 4.3.4 UPDATE语句 4.3.5 DELETE语句 4.4 条件执行语句(IF)编写规范
条件执行语句IF…ELSE 按以下格式编写 (1) 在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和END IF间可包含一条或多条PL/SQL
语句,而不需要加BEGIN 和END
(2) IF…ELSE…ENDIF 语句可以嵌套
(3) 注意ELSIF的写法
4.5 循环语句编写规范
4.5.1 简单循环语句
4.5.2 FOR循环语句
FOR 变量 IN [变量取值范围] 4.5.3 WHILE循环语句
WHILE <条件表达式> 4.6 函数文本(存储过程、函数和包等)
★ 对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下: ★ 对于子程序、触发器、包等带名的程序块,要使用结束标识,如 CREATE OR REPLACE PROCEDURE XXXsp_XXX IS … BEGIN … END XXXsp_XXX;/* 此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应 */
发表评论
-
mysql主从热备配置(含innodb)终极版
2012-12-25 13:10 2659转自 http://blogread.cn/it/articl ... -
sqlite3中的数据类型
2012-12-10 21:37 1351(转)http://www.cnblogs.com/kfqco ... -
Mac下MySql卸载方法
2012-09-10 23:57 1064Mac下MySql卸载方法 mac下mysql的D ... -
mac os x mysql数据库utf8配置
2012-09-10 23:29 2292进入mysql console: 输入 mysql& ... -
ON DUPLICATE KEY UPDATE
2012-08-07 01:47 1101(转自)http://blog.csdn.net/kesaih ... -
MySQL单列索引和组合索引的区别介绍
2012-08-07 01:31 1113(转自)http://blog.cs ... -
centos下MySQL主从同步配置
2012-08-03 13:14 1566(转自)http://apps.hi.baidu.com ... -
sql语句中left join、inner join中的on与where的区别
2012-06-13 13:24 1267table a(id, type): id t ... -
分组取前N记录
2012-05-31 16:24 1134(转)http://blog.csdn.net/ac ... -
如何一条sql语句取出分组数据中值最大的
2012-05-30 23:59 2376--按某一字段分组取最大(小)值所在行的数据(2007-10- ... -
存储过程与函数的区别
2011-09-28 19:35 1169... -
RMAN备份方案
2011-07-21 10:29 2067RMAN备份方案 RMAN也可以进行联机备份,而且备份与恢 ... -
oracle
2011-04-06 17:46 1055学习笔记 -
PLSQL Developer + Oracle客户端简易安装方法
2011-03-17 00:10 14395Oracle 10g绿色客户端 pl ... -
SELECT INTO FROM与INSERT INTO SELECT
2011-01-26 15:52 34161.INSERT INTO SELECT语句 ... -
浅谈unique列上插入重复值的MySQL解决方案
2011-01-25 11:33 1785本文的unique列上插入重复值解决方案,主要基于MySQL平 ... -
:Oracle 中对Merge语句的增强 和去重复新增
2011-01-25 11:11 2332在Oracle 10g之前,merge语句支持匹配更新和不匹配 ... -
单行函数(仅对单个表达式或一行进行处理)
2011-01-23 18:49 1281例如:select sum(qty) from sales ... -
oracle中的事务控制命令
2011-01-23 18:45 2128事务提交有显示提交:使用commit命令来提交所有未提交的更新 ... -
oracle全文检索
2011-01-23 18:18 61651.全文检索和普通检索的区别 不使用Oracle text功 ...
相关推荐
oracle数据库建表空间 用户名 密码 需要在sys用户下建
oracle数据库建表空间、分配权限 create temporary tablespace cppa_w_temp tempfile 'd:\oracle\datafile\cppa_w_temp.dbf' size 200m autoextend on next 100m maxsize 500m extent management local;
在IT行业中,数据库建表语句是数据库管理与开发中不可或缺的一部分,尤其在Oracle数据库环境中,掌握正确的建表语句对于高效配置与封装数据库至关重要。本文将深入探讨Oracle数据库建表语句的关键知识点,帮助读者更...
《ORACLE数据库命名编码规范详解》 一、编写目的与适用范围 ORACLE数据库命名编码规范的制定,旨在实现数据库命名及编码风格的标准化,从而提升数据库的可读性、可理解和可继承性,减少后期维护成本。此规范特别...
标题“Java用JDBC实现对Oracle数据库操作”主要涉及Java编程语言如何利用Java Database Connectivity (JDBC) API来与Oracle数据库进行交互。JDBC是Java中用于与各种数据库通信的标准接口,而Oracle数据库是一个广泛...
Java 操作 Oracle 数据库(建表,插数据,删除) Java 是一种广泛使用的编程语言,而 Oracle 数据库是一种功能强大且广泛使用的关系型数据库管理系统。在本文中,我们将探讨如何使用 Java 操作 Oracle 数据库,包括...
利用oracle存储过程,方便快捷创建大量测试表!!!!!
当我们谈论“建表SQL”,意味着我们需要编写SQL(结构化查询语言)脚本来定义数据库中的表结构,以便存储和管理与活动相关的信息。以下是一些可能涉及的知识点: 1. **SQL基本语法**:在Oracle中,创建表使用`...
Oracle数据库-建库、建表空间
Oracle 数据库开发和设计规范中,命名约定是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定。命名约定要求使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割。...
学生数据库建表的实现需要使用数据库管理系统(DBMS),例如MySQL、Oracle、SQL Server等。DBMS提供了创建和管理数据库的功能,包括创建数据库、创建表、插入数据、查询数据等。学生数据库建表的实现需要使用DBMS的...
Oracle数据库的统一命名与编码规范是数据库管理中的一个重要方面,旨在提高代码的可读性、可维护性和一致性。本文档详细介绍了在Oracle 10g环境下制定的一套标准规范,适用于所有以Oracle作为后台数据库的应用系统和...
《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...
Oracle数据库课程设计医院系统数据库源代码。包含Java代码和SQL语句。源码中默认使用的数据库为运行的Oracle数据库 如需修改,在java源码/database.propertie中修改即可!Oracle数据库课程设计医院系统数据库源代码...
本话题主要关注如何利用Python的xlrd库来读取Excel文件,并根据其中的数据生成适用于Oracle数据库的建表语句。 首先,xlrd是一个Python库,专门用于读取Excel文件。它支持多种Excel文件格式,包括.xls和.xlsx,使得...
Oracle 数据库设计开发规范概述 Oracle 数据库设计开发规范是指在 Oracle 数据库开发过程中,为了确保系统的稳定性、可扩展性和安全性所制定的规则和标准。这些规则和标准涵盖了数据库设计、开发、测试和维护的各个...
"MySQL 和 Oracle 数据库命名规范"是两种主流数据库系统各自遵循的一套规则,旨在确保数据库对象(如表、列、索引等)的命名清晰、一致且有意义。下面我们将详细探讨这两种数据库系统的命名规范。 首先,MySQL 的...
Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 ...
在设置Quartz集群时,这些脚本会帮助你在MySQL、Oracle、SQL Server、PostgreSQL等常见数据库中创建合适的表结构。每个数据库可能需要不同的SQL语法,因此提供多种数据库的脚本可以确保在各种环境下都能正确配置。 ...