关于数据库开发的一些规范整理

一、        表字段设计

1.   数据类型尽量用数字型,数字型的比较比字符型的快很多。

2.  尽量不要允许NULL,可以用NOT NULL+DEFAULT代替。

3.  少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用。

4.      自增字段要慎用,不利于数据迁移

二、        编码过程需要注意

1.      只返回必要的字段

不要写select *

2.      要显示的写出连接的类型

内连接就是inner join

左连接是 left join

右连接是 right join

外连接是 out join

3.      不可以把查询语句写在字段中,转换成inner join

SELECT   a.id userId,isnull(groupId,0) groupId,(select name from erp..tb_code_base where id = groupId and pId = 29)departName,

转换成

Inner join

 

 

 

4.      子查询的使用

1)     not in,not exists 需要改成 left join 来实现功能

例如

SELECT PUB_NAMEFROM PUBLISHERS  WHERE PUB_ID NOT IN(SELECT PUB_ID  FROM TITLESWHERE TYPE = BUSINESS)

需要改成

SELECT A.PUB_NAME  FROM PUBLISHERS A 

LEFT JOIN TITLES B  ON  B.TYPE = ’BUSINESS’ AND

A.PUB_ID=B. PUB_ID

WHERE B.PUB_ID IS NULL

2)  in exists 需要改成 inner join 来实现。

5.      索引的使用

1)     不要对索引使用函数

例如WHEREDATEDIFF(DAY, 日期,’2005-11-30′)=0应改为:WHERE 日期>=’2005-11-30′ AND 日期 <’2005-12-1‘

2)     不要对索引字段进行多字段连接

例如  WHERE FAME+ .+LNAME=HAIWEI.YANG

3)     连续型的数字 in 用 BETWEEN AND代替

例如 SELECT ID FROM T WHERE NUM IN(1,2,3)

使用SELECT ID FROM T WHERE  BETWEEN 1 AND 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值