虽然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保留字大写;
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;
提示符很多,有时间整理下和大家讨论讨论
分享到:
相关推荐
本文是笔者通过几年软件开发技术的积累,以及参考相关资料总结的一篇关于T-SQL语言编程规范的文章,旨在为需要这方面资料的IT公司设计开发人员提供一个参考。
为了统一软件开发过程中关于SQL...式,使编码人员编写SQL 代码遵从特定的风格,并养成良好的开发习惯,从而增 强代码的可读性,便于交流和维护,特此收集、整理公司已经积累的技术资料, 修订和编制了本编码规范。
本书可作为各类大专院校、各种成人教育学校和培训班学习SQL Server、XML以及Delphi等课程的专业图书,特别适合具有一定Delphi、SQL Server应用开发经验的读者,也可供Web应用程序开发人员和计算机爱好者学习参考。
本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。
SQL Server Express 是独立软件供应商 (ISV)、服务器用户、非专业开发人员、Web 应用程序开发人员、网站宿主以及客户端应用程序编程爱好者的理想之选。 未及时包括在本自述文件中的任何有关 SQL Server Express 的...
本书面向想要学用所有SQL Server 2008功能的有经验的开发人员。 目录 -------------------------------------------------------------------------------- 第1章 回顾SQL Server中的对象 1.1 数据库的构成 ...
本书面向想要学用所有SQL Server 2008功能的有经验的开发人员。 目录 -------------------------------------------------------------------------------- 第1章 回顾SQL Server中的对象 1.1 数据库的构成 ...
它们无非是不断充斥设备和网络的比特而已,但是如何把数据挖掘出来提供给需要的人员,检索技术是其中非常有效的途径之一。 现基于微软平台,针对SQL Server 2005提供的全文检索技术进行介绍。与关系数据查询、多维...
本书浓缩了作者作为SQL Server数据库架构师多年来丰富的实践经验,适合各类数据库开发和管理人员学习参考 目录 第1章 数据库概念简介 1.1 数据库设计阶段 1.1.1 概念阶段 1.1.2 逻辑阶段 ...
《SQL Server 2008编程入门经典(第3版)》适合于希望全面了解数据库设计概念和学习SQL的开发人员。读者具有数据库方面的基础知识有助于更好地理解《SQL Server 2008编程入门经典(第3版)》的内容。 作者简介 作者:...
第三部分 Microsoft SQL Server 2008 Integration Services开发人员指南 第14章 Microsoft SQL Server 2008 Integration Services的架构组件 329 14.1 Integration Services架构概述 329 14.2 Integration ...
《SQL Server 2008编程入门经典(第3版)》适合于希望全面了解数据库设计概念和学习SQL的开发人员。读者具有数据库方面的基础知识有助于更好地理解《SQL Server 2008编程入门经典(第3版)》的内容。 作者简介 作者:...
研发人员定义为:对于公司启动的一项开发工作,从开始调研到总结结束,整个研发工作过程中参与的所有人员,包含业务调研,开发,测试后期运维的相关人员。 1.2 角色和职责 开发用户界面。与服务端通讯。能够在用户...
《SQL Server 2008查询性能优化》适合于关心数据库应用系统性能的开发人员和数据库管理人员阅读。通过阅读《SQL Server 2008查询性能优化》,不仅可以学习到数据库性能管理的许多知识和技巧,还有助于养成良好的编程...
《SQL Server 2008查询性能优化》适合于关心数据库应用系统性能的开发人员和数据库管理人员阅读。通过阅读《SQL Server 2008查询性能优化》,不仅可以学习到数据库性能管理的许多知识和技巧,还有助于养成良好的编程...
SQL 目 录 第一章 绪论 5 系统开发背景概述 5 系统开发的目的与意义 5 第二章 数据库需求分析 7 信息要求 7 系统构成 7 数据流图 8 数据字典 8 第三章 数据库概念结构设计 10 第四章 数据库逻辑结构设计 12 关系...
比其他任何开源数据库都实现了更多的标准SQL规范,并在过去几年中增加了对 ,,时和许多其他功能的支持。 以下内容将引导您完成设置以便与MariaDB集成并使用一些现代SQL功能示例的步骤。 目录 环境与相容性 该项目...
随着信息自动化处理技术的日益发展,如何科学,全面,高效的对单位纷繁复杂的档案...本系统以JSP和 SQL为开发工具,通过后台数据库的建立与设置,软件界面的设计与实现,程序的编写与调试等几个阶段来完成对房屋租赁