数据库规则
文件状态:
√ 草稿
  正式发布
  正在修改
文件标识:
当前版本:
V1.0
作    者:
完成日期:
历 史 记 录
版本/状态
作者
参与者
起止日期
备注
V1.0
1、数据库规则
1、尽量不要使用 %XXX% 查询;采用 XXX%查询..
2、尽量不要使用函数查询;查询过程中尽量不要使用函数处理数据..
3、索引建立的原则:要建立的经常使用的字段上;建立在不会经常变动的字段上..
  需要的时候建立组合索引
4、数据量大的表按必须加时间段查询;且时间段不要超过一年..
5、不需要用子查询的时候;尽量不要使用子查询..
2、常用SQL语句编写规范
目的:
通过该规范;统一各个项目工程SQL语句的设计编写
规范:
  1、SQL关键字使用大写;一个关键字一行;每个关键字右对齐;
  2、计算符如:+;-;=;<=;>=需要前后加空格;
  3、涉及多个表的查询时;必须在SELECT列的字段前加表名或者表的别名;
4、WHERE子句书写时;每个条件占一行;语句另起一行时;以保留字或者连接符开始;连接符右对齐..
5、当语句的同一部分要延续到下一行时;按下列格式排列:
  SELECT col1;col2;col3;col4;col5;col6;col7;
          col8;col9;col10
1CREATE 语句
CREATE TABLE <表名>
 
    <列名称1> <数据类型> ;
    <列名称2> <数据类型> ;
    <列名称3> <数据类型> ;
    . . .   
   
2SELECT 语句
    SELECT <选择列列表>
      INTO <新表名>
      FROM <要选择的表名>
    WHERE <搜索条件>
GROUP BY <分组条件>
  HAVING <搜索条件>
ORDER BY <排序规则>  ASC | DESC 
3INSERT 语句
INSERT INTO <要插入的表名>
            <列1>;<列2>;...;<列n-1>;<列n>
    VALUES  <列1值>;<列2值>;...;<列n-1值>;<列n值>
4UPDATE 语句
  UPDATE <要更新的表名>
      SET <要更新的列> = <列值>
5DELETE 语句
  DELETE FROM <要删除的字段的表名>
          WHERE <要删除的列> = <列值>
6、尽量不用Select 
  用select  时更多的消耗CPU、内存、IO、网络带宽
7、改写OR为IN 
  OR效率  On
  IN效率 OLog n
注意控制in的个数;建议n小于200
例:select  from opp where phone = '12347856' or phone ='42242233'
改成: select  from opp where phone in '12347856' ;'42242233'
8、能够使用between就不要使用in
  In会使系统无法索引;只能直接使用表中的数据
   SELECT  FROM T1 WHERE ID IN 10;11;12;13;14
  改成:
   SELECT  FROM T1 WHERE ID BETWEEN 10 AND 14
能用UNION ALL就不要用UNION
UNION ALL 不执行Select distinct函数;这样就会减少很多不必要的资源
9、该写OR为UNION
  不同字段;将or改为union
  例:select  from opp where phone =*************' or cellphone        ='130****0000'
改成:select  from opp where phone= *************'
Union
Select  from opp where cellphone ='13000000000'
10、避免负向查询
    Not 、=、 <>、<、>;not in;not like等
11、避免%前缀模糊查询
    例:select  from post where title like '%北京%'
    改成:select  from post where title like '北京%'
12、count资源开销大;尽量少用
13、尽量使用“>=”;不要使用“>”..
3、数据库命名规范
目的:
为了保证企业编写出的程序符合相同的规范;保证数据库命名风格一致性、统一性和标准化;特建立此规范——数据库命名规范..
示例:
  以自动化办公OA模块为例;主键表:OA_Meeting;MeetingID为主键;外键表:OA_MeetingAfterTask;TaskID为主键..
类别
正确命名
错误命名
数据库名
WB_OA
WBOA
表名字符串长度规则
OA_Meeting主表
Meeting、OAMeeting、OA_meeting
OA_MeetingDetails明细表
OA_MeetingSub、MeetingDetails
字段名
MeetingName
meetingName、Meeting_Name
MeetingID
MeetingId、Meeting_ID
主键
PK_OA_Meeting_MeetingID
PK_OA_Meeting、PK_MeetingID
外键
FK_OA_Met_MetID_OA_MATsk_TskID
FK_OA_Meeting_MeetingID_OA_MeetingAfterTask_TaskID超出长度
唯一键
UK_OA_Meeting_MeetingID
UK_MeetingID
索引
IX_MeetingID_TaskID
IX_MeetingID、IX_TaskID
存储过程
SP_OA_GetMeetingInfo
SP_GetMeetingInfo、OA_GetMeetingInfo
视图
VW_GetMeetingID
Vw_GetMeetingID、GetMeetingID
触发器
TR_OA_Meeting_U更新操作
TR_OA_Meeting、TR_OA_Meeting_Update
函数
FU_GetTaskID
GetTaskID
数据库链接
Lnk_ServerName_WB_OA
Lnk_WB_OA_ServerName、Lnk_ServerName
作业
Job_OA_Meeting_GetName
Job_GetName、Job_OA_Meeting

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。