`
lirig
  • 浏览: 237606 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

技术开发人员SQL规范

阅读更多

 

虽然oracle主要的工作是dba所做的事情,不过作为一个普通的开发人员也时时刻刻和数据库打交道,普通开发人员也得有一些基本数据库技能。下面是我在开发中的一些oracle数据库开发的一些经验。欢迎大家提意见。

  • 表命名规则

表命名是以英文名称为原则,表示该表的具体意义,例如商品表可以叫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_表名_列名

普通索引

     IDX_表名_列名

注:索引的命名不能超过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语句所有表名,字段名全部小写,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 tt.id= 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,sex from test order by id desc) t where rownum < 21) where rn >19;

 

适当使用提示优化

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

提示符很多,有时间整理下和大家讨论讨论

 

 

29
10
分享到:
评论
5 楼 szcjlssx 2010-07-12  
分页SQL?
SELECT SQL_CALC_FOUND_ROWS * FROM table1 LIMIT 0,10; 
SELECT FOUND_ROWS(); --返回上面的语句查询结果行数,但不考虑任何LIMIT语句

……MySQL的LIMIT语法很好用
4 楼 mercyblitz 2010-06-30  
引用
普通索引

     IND_表名_列名



IDX不更好吗?
3 楼 ngmr_8888 2010-06-29  
总结得还挺全乎,顶一顶
2 楼 lirig 2010-06-29  
lanmaokyle 写道
又有时间写博客了?

发现最近脑子不用了,不写出来,很快就忘记了!
1 楼 lanmaokyle 2010-06-29  
又有时间写博客了?

相关推荐

    开发代码安全规范-防SQL注入和XSS跨站攻击代码编写规范.doc

    3.2 适用范围:本规范适用于xx集团及其分子公司业务系统的所有开发人员,包括系统外包的第三方开发人员。 4. 版本控制: * 版本号:V1.0 * 创建日期:2015-12-01 防SQL注入和XSS跨站攻击代码编写规范是非常重要的...

    SQL编写规范.doc

    本规范主要针对SQL的数据查询语言(DQL)和数据操纵语言(DML)的编写进行了规范,适用于东方口岸科技有限公司的所有开发人员。它不仅限于语法上的规定,还包含了具体的性能优化建议和示例,旨在帮助开发者编写出更加...

    技术开发SQLJDBC4

    总结来说,SQLJDBC4是针对Microsoft SQL Server的高效、便捷的JDBC驱动,尤其适合Java开发人员。它简化了数据库连接过程,并且与JDBC 4.0规范兼容,提供了更强大的功能和性能优化。通过正确导入和使用这个单一的jar...

    SQL编写规范和优化讲稿.pptx

    - **灵活性**: 规范要求非强制性约束代码开发人员的代码编写行为,在实际应用中在不违反常规要求的前提下允许存在可理解的偏差。 **1.2 大小写规则** - **保留字大写**: 所有的SQL语句中的保留字均采用全部大写,如...

    京东金融数据库开发管理规范-SQL

    本规范适用于产品技术部的开发人员、平台架构部的数据架构、运维组 DBA。 1.3 术语和缩略语: * DML:Data Manipulation Language,数据操纵语言 * DQL:Data Query Language,数据查询语言 * SCHEMA:ORACLE 中的...

    Sql server数据库开发性能提高规范

    SQL Server数据库开发性能提高规范是针对大型网站在优化和维护过程中遇到的问题而总结的一份重要文档,旨在指导开发人员编写高效、低耗的SQL代码,避免性能瓶颈的产生。以下是对该规范的详细解读: **命名规范** 1...

    SQL_92和SQL_2003标准

    SQL是Structured Query Language的缩写,它是...了解和掌握SQL_92和SQL_2003标准对于数据库设计、开发和维护人员来说至关重要,因为这有助于编写高效、可靠的数据库应用程序,并确保与不断发展的数据库技术保持同步。

    开发代码安全规范防SQL注入和XSS跨站攻击代码编写规范样本.doc

    例2:即使开发人员利用PHP内置的过滤函数后,还是有可能出现问题:调用PHP函数能够改进查询和调用,并限制输入类型,但依然无法避免注入。 1.3 防止SQL注入攻击的代码安全规范总结: * 使用参数化查询,避免直接将...

    Flink_SQL开发指南_cn_zh-CN.pdf

    这些是运行和维护Flink作业的关键环节,帮助开发和运维人员确保作业的稳定运行和故障的快速恢复。 阿里云实时计算平台提供的Flink SQL功能,不仅是一个实时计算框架,还包括了完整的生态系统,使得用户可以方便地...

    Microsoft SQL Server 2008技术内幕T-SQL语言基础

    在SQL Server 2008中,T-SQL是数据库管理员和开发人员必备的技能之一。它包括了以下关键知识点: 1. 数据查询:通过SELECT语句,你可以获取数据库中的数据,学习如何使用FROM、WHERE、GROUP BY、HAVING、ORDER BY等...

    SQL性能编写技术说明书

    SQL性能编写技术说明书是针对如何编写高性能SQL查询的指南,旨在提高数据库操作的...总之,这份SQL性能编写技术说明书提供了一个全面的框架,用于指导开发人员编写高效、优化的SQL查询,以提高系统的整体性能和稳定性。

    SQL Server范例开发大全源程序

    《SQL Server范例开发大全》是一本专注于SQL Server技术的实战型书籍,旨在为初学者、数据库管理人员以及编程爱好者提供全面而深入的SQL Server学习资源。这本书的特点是内容丰富、实用性强,通过实例来帮助读者理解...

    EXEC_SQL.rar_EXEC S_Exec开发人员_delphi ex_exec sql_exec_sql.e

    标题中的"EXEC_SQL.rar_EXEC S_Exec开发人员_delphi ex_exec sql_exec_sql.e"暗示了这是一个与编程相关的压缩包,特别关注的是执行SQL语句的功能。"EXEC_S"可能指的是在Delphi环境下开发的一个组件或函数,用于执行...

    DB2嵌入式SQL应用程序的开发.pdf

    在DB2嵌入式SQL应用程序的开发中,开发人员需要遵守一些开发规范和best practice,如遵守DB2数据库的安全准则、遵守SQL语言的语法和规范等。这些规范和best practice可以帮助开发人员更好地开发和维护应用程序。 ...

    SQL 语法提示工具SQL Assistan中文版

    SQL Assistant是一款专为数据库开发人员设计的SQL语法提示工具,尤其适合中文用户使用。这款工具以其强大的功能和易用性,极大地提升了SQL语句编写和调试的效率,减少了因语法错误导致的问题,使得数据库操作更加...

    SQL Prompt 6.1 5.3 sql格式化工具 SqlServer格式化工具

    综上所述,SQL Prompt是一款对SQL Server开发人员极其有用的工具,提供代码自动完成、格式化、性能分析等功能,支持多个SQL Server版本。使用官方授权的最新版本可以确保获得最佳的用户体验和官方技术支持。同时,...

    TeradataSQL编写规范

    为了统一软件开发过程中关于SQL...式,使编码人员编写SQL 代码遵从特定的风格,并养成良好的开发习惯,从而增 强代码的可读性,便于交流和维护,特此收集、整理公司已经积累的技术资料, 修订和编制了本编码规范。

    Oracle数据库开发工具PL/SQL

    总之,Oracle数据库开发工具PL/SQL Developer 7.03是Oracle开发人员的强大武器,它提供了一站式的解决方案,让数据库管理和编程变得更加高效和便捷。通过熟练掌握PL/SQL语言以及该IDE的使用,开发者可以更好地设计、...

    SQL智能提示插件(SQL Prompt 7)

    SQL Prompt 7是一款专为SQL开发人员设计的强大工具,它集成于常见的数据库管理软件中,如Microsoft SQL Server Management Studio (SSMS) 和 Visual Studio,旨在提升编写SQL代码的速度和准确性。这款智能提示插件...

    sqlServer提示工具SQLPrompt

    SQLPrompt是一款专为SQL Server设计的强大提示工具,它极大地提升了SQL开发人员的生产力。这款工具提供了智能代码补全、格式化、重构以及错误检查等功能,旨在帮助用户编写更高效、更准确的SQL语句。 一、智能代码...

Global site tag (gtag.js) - Google Analytics