转 http://liriguang.javaeye.com/blog/701419
虽然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_表名_列名
普通索引
IND_表名_列名
注:索引的命名不能超过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
aw.auction = 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;
提示符很多,有时间整理下和大家讨论讨论
分享到:
相关推荐
SQL规范化查询语句练习题SQL规范化查询语句练习题.rar
本Word文档旨在提供关于建表规范、SQL规范以及索引规范的详细指导,帮助数据库管理员和开发人员更有效地进行数据库设计、SQL语句编写以及索引优化,提升数据库的性能和可维护性。 二、建表规范 表名规范:表名应...
讲述sql的优化 在于如何不浪费空间的情况下正常的使用
这是我的培训文档,我总结的很详细了,有sqlserver 也有db2 的,包括很多内容。对应搞BI或者语句开发的很有帮助。
1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对...
Oracle SQL规范与优化注意事项 指导开发者写出高效的SQL语句
亲身尝试,通过实践,给大家介绍SQL规范和性能,提升应用数据库性能 亲身尝试,通过实践,给大家介绍SQL规范和性能,提升应用数据库性能
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的...本文是Hive的开发规范,包括从网上搜集的一些内容,也包括在工作中总结的,以及在书中整理的点。
阿里数据库sql规范,个人学习使用
资深开发DBA对Oracle SQL编写规范的总结
MySQL数据库设计SQL规范.doc该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
SQL库规范学习者与使用者
一,核心军规 二,字段类军规 三,索引类军规 四,sql类军规
SQL审核与开发规范,
SQL编写规范和优化讲稿.pptx
sql 书写 规范 from 网络 仅供大家参考。
华为公司的编程规范 1 排版 6 2 注释 11 3 标识符命名 18 4 可读性 20 5 变量、结构 22 6 函数、过程 28 7 可测性 36 8 程序效率 40 9 质量保证 44 10 代码编辑、编译、审查 50 11 代码测试、维护 52 12 宏 53
操作场景本场景介绍配置数据变更和审批规范,默认情况下,DMC 会按照数据库的行业规范来约束 SQL 输入规则,用户可以在默认的基础上,自行修改规范。在操作列单击
详细的SQL命名规模,对于刚开始开发的人员是一个不错的选择,对你写代码有不错的参考价值