oracle数据库建表 ORACLE数据库的统一命名与编码规范
Oracle数据库命名规范
![Oracle数据库命名规范](https://img.taocdn.com/s3/m/927a1b33eef9aef8941ea76e58fafab069dc44d2.png)
1.Oracle数据库命名规范数据库命名规范总体上以“汉语拼音和常见英语单词相结合”的方式,汉语拼音即是采用每一个汉字拼音的第一个字母的方式。
英语单词采用整个英文单词或可以识别的英文单词缩写的方式。
数据库字段命名原则总统上同数据库命名,采用“汉语拼音和常见英语单词相结合”方式命名。
这里单独出来主要是强调本系统字段命名需要额外遵循如下规则:1)字段名称的唯一性:即同一含义的字段在整个系统范围内中必须有相同的字段名。
不能有类似一个表中的备注字段用“BeiZhu”,另一表中的备注却用“Remark”、“Desc”、“XXRemark”等。
2)字段含义唯一性:即系统同一字段名称必须有同一含义。
不能有类似“Name”在一个表中表单位名称,在另外一个表中表项目名称,这种情况需要加前缀区分。
3)所有字段名不能以SM开头,目的是避免与SuperMap保留字段前缀混淆4)空间表中:字段顺序以空间信息字段在前,属性信息字段在后原则。
5)属性表中:字段顺序以主次顺序设计,用于空间定位的字段放在最后原则。
1.1表属性规范1)表名前缀为Tbl_。
数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。
表名称不能用双引号包含。
2)表分区名前缀为p。
分区名必须有特定含义的单词或字串。
例如:tbl_pstn_detail的分区p2004100101表示该分区存储2004100101时段的数据。
3)字段名字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。
4)主键名前缀为PK_。
主键名称应是前缀+表名+构成的字段名。
如果复合主键的构成字段较多,则只包含第一个字段。
表名可以去掉前缀。
5)外键名前缀为FK_。
外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。
表名可以去掉前缀。
1.2索引1)普通索引前缀为IDX_。
索引名称应是前缀+表名+构成的字段名。
如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。
ORACLE数据库设计规范
![ORACLE数据库设计规范](https://img.taocdn.com/s3/m/b0b4bb07be1e650e52ea99fb.png)
1命名原则1.1约定ü是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定;ü命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割ü避免使用Oracle的保留字如LEVEL、关键字如TYPE(见Oracle保留字和关键字);ü各表之间相关列名尽量同名;ü除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;ü命名只能使用英文字母,数字和下划线;1.2表名规则如下:命名规则为xxx_yyy_TableName。
xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;TableName为表含义, 最多十个字母构成,尽量用简称TableName规则如下:ü使用英文单词或词组作为表名,不得使用汉语拼音ü用名词和名词短语作表名ü不使用复数正确的命名,例如:fiber_sys_userfiber_biz_order1.3存储过程规则如下:命名规则为xxx_yyy_StoredProcedureName。
xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;StoredProcedureName为存储过程含义,最多十个字母构成,尽量用简称StoredProcedureName规则如下:ü用动词或动词短语来命名,并带有宾语ü需要符合用Pascal 命名规则。
ü尽量谨慎地使用缩写ü尽量不要和关键字重合ü不要用任何名前缀(例如U,B)üStoredProcedureName内不使用下划线ü当操作依赖条件时,一般结尾使用By+条件存储过程正确的命名,例如:sys_InsertUsersys_SearchUserByUserIDsys_DeleteUserByUserID1.4视图规则如下:ü视图的命名采用xxx_yyy_ViewName_v。
oracle mysql 编码规则
![oracle mysql 编码规则](https://img.taocdn.com/s3/m/31a2f206a9956bec0975f46527d3240c8447a1f1.png)
oracle mysql 编码规则Oracle和MySQL是两个常用的关系型数据库管理系统,它们在编码规则方面有些不同。
下面我将为您介绍Oracle和MySQL的编码规则。
一、Oracle编码规则:1.字符集选择:Oracle支持多种字符集,如AL32UTF8、UTF8、ZHS16GBK等。
其中,AL32UTF8是Unicode编码的扩展,能够存储任何字符,建议使用AL32UTF8字符集,以适应全球化的需求。
2.字符长度限制:Oracle中的VARCHAR2类型的字符长度限制为4000字节,在AL32UTF8字符集下,这对应于4000个ASCII字符或者1333个汉字。
如果需要存储更多字符,可以使用CLOB类型。
3.使用国际化支持函数:Oracle提供了丰富的国际化支持函数,如NLS_LOWER、NLS_UPPER、NLS_INITCAP等,可以在各种字符集之间进行转换和比较。
4.字符编码转换:在涉及到不同字符集之间的数据传输和处理时,需要进行字符编码转换,Oracle提供了一系列的函数和工具来实现字符编码转换,如CONVERT、NLS_CHARSET_ID等。
5.字符串比较规则:在Oracle中,字符串比较默认是不区分大小写的,如果需要进行区分大小写的比较,可以使用BINARY_CI规则或者设置NLS_SORT参数。
6.字符集的设置:在创建数据库时,需要设置数据库的字符集,可以在CREATE DATABASE语句中指定字符集,也可以使用ALTER DATABASE语句来修改数据库的字符集。
二、MySQL编码规则:1.字符集选择:MySQL支持多种字符集,如utf8mb4、utf8、gbk 等。
其中,utf8mb4是Unicode编码的超集,能够存储任何字符,建议使用utf8mb4字符集,以适应全球化的需求。
2.字符长度限制:MySQL中的VARCHAR类型的字符长度限制为65535字节,在utf8mb4字符集下,这对应于65535个ASCII字符或者21845个汉字。
oracle命名规则
![oracle命名规则](https://img.taocdn.com/s3/m/e0084228c381e53a580216fc700abb68a982adde.png)
oracle命名规则一、概述Oracle命名规则是指在Oracle数据库中定义各种对象(如表、列、索引、约束等)时所遵循的命名规范。
合理的命名规则可以提高数据管理的效率,降低出错率,使数据库更易于维护和管理。
二、命名规则的基本原则1. 命名应该简洁明了,易于理解和记忆。
2. 命名应该准确反映对象的含义和作用。
3. 命名应该避免使用特殊字符和空格,以免造成不必要的麻烦。
4. 命名应该遵循大小写敏感原则。
三、表命名规则1. 表名应该用单数形式,并且尽量简短明了。
2. 表名应该准确反映表内数据的含义和作用。
3. 表名中可以使用下划线分隔单词,但不建议过多使用。
四、列命名规则1. 列名应该用小写字母,并且尽量简短明了。
2. 列名应该准确反映列内数据的含义和作用。
3. 列名中可以使用下划线分隔单词,但不建议过多使用。
五、索引命名规则1. 索引名称应以“IDX_”开头,后面跟上表名和列名,以便于识别。
2. 索引名称应该用小写字母,并且尽量简短明了。
3. 索引名称中可以使用下划线分隔单词,但不建议过多使用。
六、约束命名规则1. 约束名称应以“PK_”或“FK_”开头,分别代表主键和外键。
2. 约束名称应该用小写字母,并且尽量简短明了。
3. 约束名称中可以使用下划线分隔单词,但不建议过多使用。
七、存储过程和函数命名规则1. 存储过程和函数名称应该用大写字母,并且尽量简短明了。
2. 存储过程和函数名称应该准确反映其功能和作用。
3. 存储过程和函数名称中可以使用下划线分隔单词,但不建议过多使用。
八、包命名规则1. 包名称应该用大写字母,并且尽量简短明了。
2. 包名称应该准确反映其功能和作用。
3. 包名称中可以使用下划线分隔单词,但不建议过多使用。
九、触发器命名规则1. 触发器名称应该用大写字母,并且尽量简短明了。
2. 触发器名称应该准确反映其功能和作用。
3. 触发器名称中可以使用下划线分隔单词,但不建议过多使用。
十、总结Oracle命名规则是数据库管理中不可或缺的一部分,良好的命名规则可以提高数据管理的效率和准确性。
数据库(Oracle)命名规范
![数据库(Oracle)命名规范](https://img.taocdn.com/s3/m/e1d74922192e45361066f5f4.png)
命名规范(Oracle数据库)1表命名●命名最好望文生义,避免使用数据库关键词●命名一律为大写字母(或小写,不要大下写混合)●英文单词单数命名.例:FACTORY●英文单词缩写命名.例:DEPT●英文单词之间用下划线连结,且每个单词皆为单数.例:TASK_RESULT●用来存储历史资料,命名以HISTORY结尾.例:TASK_HISTORY●用来存储日志资料,命名以LOG结尾.例:TASK_LOG●用来存储类别资料,命名以TYPE结尾.例:TASK_TYPE2表字段●命名最好望文生义,避免使用数据库关键词●英文单词单数命名.例:MAIL●英文单词缩写命名.例:DEPT_ID●英文单词之间用下划线连结,且每个单词皆为单数.例:USER_NAME●字段用来存储流水号,命名以ID结尾.例: TASK_ID●字段用来存储代码,命名以NO结尾.例: TASK_NO●字段用来存储日期,命名以DATE结尾.例:CREATE_DATE●字段用来存储数量,命名以QTY结尾.例:PLAN_QTY●字段用来存储类别,命名以TYPE结尾.例:STATION_TYPE●字段用来存储名称,命名以NAME结尾.例:ENDUSER_NAME●字段用来存储描述,命名以DESC结尾.例:STATION_DESC●字段用来存储代码,命名以CODE结尾.例:ERROR_CODE●字段用来存储标志,命名以FLAG开头.例:DEBUG_FLAG3索引命名以表名+ INDEX+两位流水号(01~99).例:ENDUSER_INDEX014键值●主键命名以表名+PK+一位流水号(1~9).例:DEPT_PK1●附键命名以表名+AK+一位流水号(1~9).例:DEPT_AK1●外键命名以表名+FK+一位流水号(1~9).例:DEPT_FK1●检查条件以表名+CK+一位流水号(1~9).例:DEPT_CK15视图●命名以V_开头例:V_DEPT●其它规则参考资料表命名规则6触发器以表名+TR+一位流水号(1~9) 命名.例:DEPT_TR17存储过程●命名以PC开头●实现单一资料表交易功能,以PC+表名命名.例:PC_LINE●实现关联资料表交易功能,以PC+功能命名.例:PC_GETDATA●命名需让人明白其主要功能8函数●检查功能的函数,以Is+检查项目命名.例:bool IsCharValid(char)●获取资料功能的函数,以Get+数据项命名.例:string GetLineNo(char)●设定资料功能的函数,以Set+数据项命名.例:int SetLineNo(char)9序列●命名以SEQ开头●以表的字段名命名.例: SEQ_LINE_ID●若与其它表的字段名相同,则以表名+字段名命名.例:SEQ_CODE_TYPE_ID 10表空间●存储资料的命名为项目名称.例:CRM●存储索引的命名为项目名称+IDX.例:CRMIDX●存储历史的命名为项目名称+OLD.例:CRMOLD●存储临时的命名为项目名称+LOG.例:CRMLOG.11数据文件命名以所属表空间开头+两位流水号(01~99)+.ORA.例:CRM01.ORA 12包命名以功能缩写开头+PKG+流水号(1~9).例:CRMPKG113用户●项目管理者以项目名称命名.例:CRM●开发者通用名称DEVELOPER●初学者通用名称BEGINNER。
Oracle数据库开发规范
![Oracle数据库开发规范](https://img.taocdn.com/s3/m/3ba75b8fc1c708a1294a441c.png)
Oracle数据库开发规范V 2.0目录一、命名规范 (3)二、表规范 (4)三、索引规范 (4)四、书写规范 (6)五、注释规范 (8)六、注意事项 (9)附PL/SQL Developer美化器规则 (14)一、命名规范数据库对象命名应使用有意义、易于记忆、描述性强、简短及唯一的英文单词或英文单词缩写,不允许使用中文、拼音或特殊字符。
变量名命名规范示例:PROCEDURE P_CHECK_PROMOTION_RULE(I_WEB_ORDER_ID IN NUMBER,O_ISACCORD_PROM_RULE OUT NUMBER)ISV_ISNO_ACCORD_PRODUCT VARCHAR2(1000);--用于XX目的... ...二、表规范1. 表必须要有注释如comment on table CU_COUPON is '收支明细';2. 列尽量要有注释如comment on column CU_COUPON.coupon_code is '单号';3. 经常用到的列放在表的前面,有利于提高检索效率。
4. 列值和列的数据类型要尽量匹配数值用NUMBER,字符用VARCHAR2,时间用DATE,否则会发生隐式数据类型转换,影响性能。
5. 不要用LONG和RAW数据类型LONG和RAW都属于已经被淘汰的数据类型,可以用CLOB和BLOB代替。
对于已有的LONG类型列,可改为LOB类型,如ALTER TABLE 表名MODIFY列名CLOB;但注意LONG改为LOB后,会导致该表上其他列索引(非LONG列)失效,需要重建索引,可执行ALTER INDEX 索引名REBUILD ONLINE;6. 大表要考虑数据的生命周期对于一些大表如日志表,考虑数据的保留时间,可建成分区表,以方便定期把老数据迁移到历史库,减少在线库的容量,提高在线库的性能。
7. 能加主键的列加上主键,能加唯一约束的列加上唯一约束,能加上非空约束的列加上非空约束,能加上check约束的列加上check约束,主键、唯一约束、非空约束、check约束可大大提高sql的执行效率。
oracle表名命名规则
![oracle表名命名规则](https://img.taocdn.com/s3/m/1c91c79c294ac850ad02de80d4d8d15abe2300c5.png)
Oracle表名命名规则1. 任务简介在Oracle数据库中,表是存储数据的基本单位,表名的命名规则对于数据库的管理和开发非常重要。
本文将介绍Oracle表名的命名规则和要求,以帮助读者规范命名表名。
2. 命名规则Oracle表名的命名必须遵循一定的规则,以保证表名的唯一性和合法性。
2.1 字符集•表名只能使用ASCII字符集中的字母(A-Z,a-z)、数字(0-9)和下划线(_)。
•表名不能使用其他特殊字符,如空格、逗号等。
2.2 长度限制•表名长度不能超过30个字符。
•表名区分大小写。
2.3 保留字•表名不能使用Oracle保留字作为表名。
•Oracle数据库的保留字包括一些关键字,如SELECT、INSERT、UPDATE等。
Oracle保留字的列表可以在官方文档中找到。
3. 命名建议为了方便管理和使用Oracle数据库,命名表名时应当遵循一些命名建议。
3.1 名称表达含义•表名应当能够准确地表达其所存储数据的含义。
•表名应尽量简洁明了,易于理解。
3.2 使用下划线•在表名中,可以使用下划线来分隔单词,提高可读性。
•例如,可以将一个表名命名为”employee_info”,而不是”employeeinfo”。
3.3 避免缩写和简写•在命名表名时,应避免过多的缩写和简写,以免造成歧义和困扰。
•例如,应当使用”customer”而不是”cust”。
3.4 使用大小写规范•表名的大小写可以采用不同的规范,例如全大写、全小写或者首字母大写。
•无论采用哪种规范,应在整个数据库中保持一致。
4. 表名示例下面是一些符合Oracle表名命名规则的示例:1.employee2.department3.order_info4.product_category5. 总结在设计和管理Oracle数据库时,合理命名表名是非常重要的。
遵循表名命名规则和命名建议,可以提高数据库的可读性和可维护性,减少命名歧义和错误。
总体来说,Oracle表名的命名规则包括字符集、长度限制和保留字的限制。
Oracle数据库编码规范
![Oracle数据库编码规范](https://img.taocdn.com/s3/m/da2bd229bfd5b9f3f90f76c66137ee06eff94e0b.png)
Oracle数据库编码规范1目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2适用范围本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。
3规范3.1书写规范丑陋的书写规范不仅可读性较差,而且给人以敬而远之的感觉;而良好的书写规范则给人以享受和艺术的体验。
3.1.1大小写风格规则3.1.1.1所有数据库关键字和保留字命名使用大小写不做要求。
3.1.2缩进风格规则3.1.2.1程序块严格采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2/4个。
必须使用空格,不允许使用【Tab】键。
以免在用不同的编辑器阅读程序时,因【Tab】键所设置的空格数目不同而造成程序布局不整齐。
规则3.1.2.2当同一条语句需要占用多于一行时,每行的其他关键字与第一行的关键字进行右对齐。
IF flag = True THENSelect usernameInto vUserInfoFrom userInfoWhere userId = ‘id’END IF;3.1.3空格及换行规则3.1.3.1不允许把多个语句写在一行中,即一行只写一条语句且一行最长不能超过80字符;规则3.1.3.2避免将复杂的SQL语句写到同一行,建议要在关键字和谓词间换行。
WHERE子句书写时,每个条件占一行。
规则3.1.3.3相对独立的程序块之间必须加空行。
BEGIN、END独立成行。
3.1.4其它规则3.1.4.1确保变量和参数在类型和长度上与表数据列相匹配。
如果与表数据列宽度不匹配,则当较宽或较大的数据传进来时会产生运行异常。
3.2命名规范对于命名规范来说,想要做到完全统一的确是不可能的任务。
命名规范更多的是个人层面的爱好,既使无法完全做到一致,但是我们仍然要尽量去遵守。
3.2.1字段命名规范在此仅提供几种常见的命名方法,如表3-2-1所示。
表3-2-1 命名规范表规则3.2.1.1不建议使用数据库关键字和保留字,原因是为了避免不必要的冲突和麻烦。
ORACLE数据库命名编码规范
![ORACLE数据库命名编码规范](https://img.taocdn.com/s3/m/de257e94c77da26924c5b008.png)
ORACLE 数据库命名编码规范1、编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承,在实现业务功能的同时具有较佳的运行性能。
2、适用范围本规范适用于公司范围内所有以ORACLE 作为后台数据库的应用系统和项目开发工作。
3、对象命名规范应遵守的通用规则1、必须使用拼写正确的英文单词。
不允许使用汉语拼音或者其他首拼等缩写。
2、词汇必须完整。
不允许使用随意的简写形式。
3、如果名字代表复数意义,应使用其正确的复数形式。
4、约定俗成的字母缩写,可作为一个单词使用。
5、应尽量将标志符的意义描述清楚。
即使用一个以上的单词来表示一项内容。
6、所有的对象名都是大写3.1数据库和SID1、全局数据库名和例程SID 名要求一致2、数据库名定义为系统+功能名称,例如核心业务生产,可以命名为lisprod3、因SID名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符3.2表空间建议在表空间的命名前面统一加上系统名,比如一个数据库有多个系统的DATA的情况下1、面向用户的专用数据表空间以系统名_用户名++DATA 命名,如AUD 用户专用数据表空间可命名为PI_AUD_DATA(PI表示个险)2、面向用户的专用索引表空间以系统名_用户名+_+IDX 命名3、面向用户的专用临时表空间以系统名_用户名+_+TMP 命名4、面向用户的专用回滚段表空间以系统名_用户名+_+RBS 命名5、面向应用的表空间以系统名_应用名+_DATA/系统名_应用名+_IDX/系统名_应用名+_TMP/应用名+_RBS 命名6、 LOB 段数据专用表空间以其数据表空间+_+LOBS 命名,如上例中数据表空间为AUD_DATA,则LOB 段表空间可命名为AUD_DATA_LOBS7、表空间文件表空间文件命名以表空间名+两位数序号(序号从01 开始)组成,如AUD_DATA01 等3.3表3.3.1表和视图的命名表要存放在所对应的表空间下,命名的时候可以加上表空间的简称, 表命名要遵循以下原则1、一般表采用模块名+_+表义名” 格式构成2、若数据库中只含有单个模块,命名可采用“表义名”格式构成3、模块名或表义名均以其英文的字符命名,4、表别名命名规则:取表义名的前3 个字符加最后一个字符。
oracle 表空间命名 规则
![oracle 表空间命名 规则](https://img.taocdn.com/s3/m/f27d4c5353d380eb6294dd88d0d233d4b14e3f09.png)
oracle 表空间命名规则Oracle表空间命名规则在Oracle数据库中,为了保证数据库的管理和维护工作的正常进行,合理命名表空间是非常重要的。
下面将介绍一些常用的Oracle表空间命名规则。
1. 统一前缀:为了方便管理和识别,可以在表空间名称前添加一个统一的前缀,比如"TS_"或者"TABLESPACE_"。
这样可以清晰地区分表空间和其他对象。
2. 使用简洁的描述:表空间名称应该简洁明了,能够准确地描述其用途和功能。
可以使用有意义的英文单词或短语,避免使用过长或晦涩的名称。
比如,可以使用"DATA"表示数据表空间,"INDEX"表示索引表空间,"TEMP"表示临时表空间等。
3. 区分大小写:Oracle数据库在默认情况下是区分大小写的,因此在命名表空间时要注意大小写的一致性。
建议使用全小写字母或者全大写字母,避免混合使用造成混淆。
4. 区分环境和用途:如果数据库用于不同的环境或不同的用途,可以在表空间名称中添加相应的标识。
比如,在开发环境可以使用"DEV",在测试环境可以使用"TEST",在生产环境可以使用"PROD"。
同时,还可以根据表空间的用途添加相应的标识,如"USERS"表示用户表空间,"LOB"表示大型对象表空间等。
5. 避免特殊字符和空格:为了避免引起命名的混淆和错误,应该避免在表空间名称中使用特殊字符和空格。
最好只使用字母、数字和下划线来定义表空间名称。
这些是常用的Oracle表空间命名规则,根据实际情况和需求,可以结合使用不同的规则。
合理命名表空间将有助于提升数据库的可管理性和可维护性,方便数据库管理员进行监控和维护工作。
oracle命名规范
![oracle命名规范](https://img.taocdn.com/s3/m/f65a32d2195f312b3169a54e.png)
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_lobs3.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均采用其表义名或缩写形式。
Oracle数据库设计规范建议
![Oracle数据库设计规范建议](https://img.taocdn.com/s3/m/d2a4a7cbd4bbfd0a79563c1ec5da50e2524dd13b.png)
Oracle数据库设计规范建议oracle数据库设计规范:包括字段命名规范,表命名规范1目的本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证。
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
2适用范围本规范的适用人员范围包括我司的所有应用开发人员以及在我司承接数据库应用开发的软件人员。
本规范的适用IT范围包括数据库对象的命名规范、设计原则、SQL语句的设计和使用、SQL语句的性能优化建议、其他与性能有关的设计原则以及设计工具的选择。
3数据对象的命名规范3.1通用规范3.1.1使用英文:要用简单明了的英文单词,不要用拼音,特别是拼音缩写。
主要目的很明确,让人容易明白这个对象是做什么用的;3.1.2一律大写,特别是表名:有些数据库,表的命名乃至其他数据对象的命名是大小写敏感的,为了避免不必要的麻烦,并且尊重通常的习惯,最好一律用大写;3.2数据库对象命名规范3.2.1表的命名3.2.1.1表名的前缀:前缀_表名_T。
为表的名称增加一个或者多个前缀,前缀名不要太长,可以用缩写,最好用下划线与后面的单词分开;其目的有这样几个:3.2.1.1.1为了不与其他项目或者其他系统、子系统的表重名;3.2.1.1.2表示某种从属关系,比如表明是属于某个子系统、某个模块或者某个项目等等。
表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员。
比如以子系统为前缀的,当看到这个表的时候,就知道有问题可以去找该子系统的开发和使用人员;3.2.2视图命名:相关表名_V(或者根据需要另取名字);3.2.3程序包命名:程序包名_PKG(用英文表达程序包意义);3.2.4存储过程命名:存储过程名_PRO(用英文表达存储过程意义);oracle数据库设计规范:包括字段命名规范,表命名规范3.2.5函数命名:函数名称_FUN(用英文表达函数作用);3.2.6触发器命名:触发器名称_TRI(用英文表达触发器作用);3.2.7索引命名:表名_字段名_ID某(如果存在多字段索引,取每字段前三个字符加下划线组合,如在cutom,cutting,curtail上建立联合索引,命名为表名_cu_cut_cur_ID某,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在cutid,cutom,cutname上建立联合索引,就命名为表_tid_tom_tna_ID某;3.2.8唯一索引命名:表名_字段名_UNI(如果存在多字段唯一索引,取每字段前三个字符加下划线组合,如在cutom,cutting,curtail上建立唯一索引,命名为表名_cu_cut_cur_UNI,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在cutid,cutom,cutname上建立唯一索引,命名:表_tid_tom_tna_UNI;3.2.9主键命名:表名_字段名_PK(如果存在多字段主键,取每字段前三个字符加下划线组合,如在cutom,cutting,curtail上建立主键,命名为表名_cu_cut_cur_PK,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在cutid,cutom,cutname上建立主键,命名:表_tid_tom_tna_PK;3.2.10外键命名:表名_主表名_字段名_FK;3.2.11Sequence命名:表名_列名_SEQ(或者根据需要另取名字);3.2.12Synonym命名:与对应的数据库对象同名;3.2.12JAVA命名:遵守公司相应的JAVA命名规范;4数据库对象设计原则4.1表的设计4.1.1主、外键4.1.1.1每个表,都必须要有主键。
命名规范(Oracle数据库)
![命名规范(Oracle数据库)](https://img.taocdn.com/s3/m/21a554da48649b6648d7c1c708a1284ac850057a.png)
命名规范(Oracle数据库)1、表命名命名最好望⽂⽣义,避免使⽤[数据库]关键词命名⼀律为⼤写字母(或⼩写,不要⼤下写混合)英⽂单词单数命名,例:FACTORY英⽂单词缩写命名,例:DEPT英⽂单词之间⽤下划线连结,且每个单词皆为单数,例:TASK_RESULT⽤来存储历史资料,命名以HISTORY结尾,例:TASK_HISTORY⽤来存储⽇志资料,命名以LOG结尾,例:TASK_LOG⽤来存储类别资料,命名以TYPE结尾,例:TASK_TYPE2、表字段命名最好望⽂⽣义,避免使⽤数据库关键词英⽂单词单数命名,例:MAIL英⽂单词缩写命名,例:DEPT_ID英⽂单词之间⽤下划线连结,且每个单词皆为单数,例:USER_NAME字段⽤来存储流⽔号,命名以ID结尾,例: TASK_ID字段⽤来存储代码,命名以NO结尾,例: TASK_NO字段⽤来存储⽇期,命名以DATE结尾,例:CREATE_DATE字段⽤来存储数量,命名以QTY结尾,例:PLAN_QTY字段⽤来存储类别,命名以TYPE结尾,例:STATION_TYPE字段⽤来存储名称,命名以NAME结尾,例:ENDUSER_NAME字段⽤来存储描述,命名以DESC结尾,例:STATION_DESC字段⽤来存储代码,命名以CODE结尾,例:ERROR_CODE字段⽤来存储标志,命名以FLAG开头,例:DEBUG_FLAG3、索引命名以表名+ INDEX+两位流⽔号(01~99),例:ENDUSER_INDEX014、键值主键命名以表名+PK+⼀位流⽔号(1~9),例:DEPT_PK1附键命名以表名+AK+⼀位流⽔号(1~9),例:DEPT_AK1外键命名以表名+FK+⼀位流⽔号(1~9),例:DEPT_FK1检查条件以表名+CK+⼀位流⽔号(1~9),例:DEPT_CK15、视图命名以V_开头例:V_DEPT其它规则参考资料表命名规则6、触发器以表名+TR+⼀位流⽔号(1~9) 命名,例:DEPT_TR17、存储过程命名以PC开头实现单⼀资料表交易功能,以PC+表名命名,例:PC_LINE实现关联资料表交易功能,以PC+功能命名,例:PC_GETDATA命名需让⼈明⽩其主要功能8、函数检查功能的函数,以Is+检查项⽬命名,例:bool IsCharValid(char)获取资料功能的函数,以Get+数据项命名,例:string GetLineNo(char)设定资料功能的函数,以Set+数据项命名,例:int SetLineNo(char)9、序列命名以SEQ开头以表的字段名命名,例: SEQ_LINE_ID若与其它表的字段名相同,则以表名+字段名命名,例:SEQ_CODE_TYPE_ID10、表空间存储资料的命名为项⽬名称,例:CRM存储索引的命名为项⽬名称+IDX,例:CRMIDX存储历史的命名为项⽬名称+OLD,例:CRMOLD存储临时的命名为项⽬名称+LOG,例:CRMLOG11、数据⽂件命名以所属表空间开头+两位流⽔号(01~99)+,ORA,例:CRM01,ORA12、包命名以功能缩写开头+PKG+流⽔号(1~9),例:CRMPKG113、⽤户项⽬管理者以项⽬名称命名,例:CRM开发者通⽤名称DEVELOPER初学者通⽤名称BEGINNER。
oracle数据库表命令规则
![oracle数据库表命令规则](https://img.taocdn.com/s3/m/7717f7e85ebfc77da26925c52cc58bd630869379.png)
oracle数据库表命令规则在使用Oracle数据库时,经常需要对表进行操作,包括创建、修改、删除等。
为了保证表的正确性和完整性,需要遵守一定的命令规则。
以下是Oracle数据库表命令规则。
1.创建表创建表的命令为CREATE TABLE,其基本语法如下:CREATE TABLE table_name(column1 datatype [ NULL | NOT NULL ],column2 datatype [ NULL | NOT NULL ],column3 datatype [ NULL | NOT NULL ],...);其中,table_name为表名,column1、column2、column3等为列名,datatype为数据类型,NULL表示该列可以为空,NOT NULL表示该列不能为空。
2.修改表修改表的命令为ALTER TABLE,其基本语法如下:ALTER TABLE table_name{ ADD column_name datatype [ NULL | NOT NULL ]| MODIFY column_name datatype [ NULL | NOT NULL ]| DROP column_name};其中,ADD、MODIFY和DROP分别表示添加列、修改列和删除列。
3.删除表删除表的命令为DROP TABLE,其基本语法如下:DROP TABLE table_name;其中,table_name为表名。
4.重命名表重命名表的命令为RENAME,其基本语法如下:RENAME table_name TO new_table_name;其中,table_name为原表名,new_table_name为新表名。
5.查看表结构查看表结构的命令为DESCRIBE或者DESC,其基本语法如下: DESCRIBE table_name;或者DESC table_name;其中,table_name为表名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 = 登出'
3.6.1 存储过程
存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。
3.6.2 函数
函数命名由“系统名+f+_+函数标识”组成
★ 若远程服务器名和数据库名一致,上式“_+数据库名”部分省去
3.9 命名中的其它注意事项
★ 命名都不得超过30个字符。
★ 不要在对象名的字符之间留空格
★ 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突 4、 编码规范
4.1 一般性注释
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.6.3 包
包命名由“系统名+pkg+_+包标识”组成
3.6.4 函数文本中的变量采用下列格式命名:
★ 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数
★ 过程变量命名采用“l+_+名称”形式
★ 全局包变量命名采用“g+_+名称”形式
4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息
4.3 常用SQL 语句的编写规范
4.3.1 CREATE语句 4.3.2 SELECT语句 查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能):
★ 将SELECT 语句分为5部分:
3.2.5 主键
★ 任何表都必须定义主键
★ 表主键命名为:“pk+_+表名(或缩写)+_+主键标识”如“pk_YHXX_IDKH”等
3.2.6 外键
表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识”如“fk_YHLX_YHXX_SFZH”等
(5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。
★ 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 ★ 关键字用大写,列名和表名采用小写
★ 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行
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类型变量),应给出每个值的含义。
3.3 视图
视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似
3.4 序列
序列命名以seq_+含义名组成
3.5 同义词
同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀
3.6 存储对象相关
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相对应 */
★ 当语句的同一部分要延续到下一行时,按下列格式排列: ★ 将语句中WHERE 和AND 部分格式化,书写布局类似于 ★ 当语句中出现括号时,括号的两边不留空格
★ 在SQL 语句使用运算符时,操作两边应各留一个空格,如 4.3.3 INSERT语句 4.3.4 UPDATE语句 4.3.5 DELETE语句 4.4 条要求一致
★ 因SID 名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符
3.2 表相关
3.2.1 表空间
★ 面向用户的专用数据表空间以用户名+_+data命名 ,如Aud 用户专用数据表空间可命名为Aud_data
表命名要遵循以下原则:
★ 一般表采用“系统名+t_+模块名+_+表义名” 格式构成
★ 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成
★ 模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;
★ 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4 个字符加最后一个字符等)
(1) 由SELECT 开头,后跟一个显示查询结果的列表;
(2) 由FROM 开头,后跟一个或多个获取数据所涉及的表;
(3) 由WHERE 开头,后跟一个或多个确定所需值的条件;
(4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;
★ 面向用户的专用索引表空间以用户名+_+idx命名
★ 面向用户的专用临时表空间以用户名+_+tmp命名
★ 面向用户的专用回滚段表空间以用户名+_+rbs 命名
★ 面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名
3.7 用户及角色
★ 用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成
★ 角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成
3.8 数据库链接
★ 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成
★ LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs
3.2.2 表空间文件
表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等
3.2.3 表
★ 临时表采用“系统名+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+_+关联表的表义名(或缩写)+_+字段名”进行