技术开发人员SQL规范

原为地址:http://liriguang.iteye.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语句所有表名,字段名全部小写,SQL保留字大写;
select *查询语句不允许出现,要明确写查询哪些列;
连接符or、in、and、以及=、<=、>=等前后加上一个空格
SQL语句注意缩进
where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐

多表连接时,使用表的别名来引用列

sql示例:

SELECT aa.title,aw.bid,aw.closingdate,u.nick
FROM t_users u,t_test t t,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;

提示符很多,有时间整理下和大家讨论讨论
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值