sqlserver命名规范.docx

上传人:b****6 文档编号:5957433 上传时间:2023-01-02 格式:DOCX 页数:7 大小:20.53KB
下载 相关 举报
sqlserver命名规范.docx_第1页
第1页 / 共7页
sqlserver命名规范.docx_第2页
第2页 / 共7页
sqlserver命名规范.docx_第3页
第3页 / 共7页
sqlserver命名规范.docx_第4页
第4页 / 共7页
sqlserver命名规范.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

sqlserver命名规范.docx

《sqlserver命名规范.docx》由会员分享,可在线阅读,更多相关《sqlserver命名规范.docx(7页珍藏版)》请在冰豆网上搜索。

sqlserver命名规范.docx

sqlserver命名规范

竭诚为您提供优质文档/双击可除

sqlserver命名规范

  篇一:

sqlserver数据库设计命名规范

  sqlserver数据库设计规范

  1相关的设计规范

  1.1采用有意义的字段名

  尽可能地把字段描述的清楚些。

当然,也别做过头了,比如customershippingaddressstreetline1虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。

每个单词的首个字母要求用大写!

!

!

不要用下划线来连接每个单词。

  1.2遵守3nF标准3nF规定:

  a.表内的每一个值都只能被表达一次。

  b.表内的每一行都应该被唯一的标识(有唯一键)。

  c.表内不应该存储依赖于其他键的非键信息。

  1.3小心保留词

  要保证你的字段名没有保留词、数据库系统或者常用访问方法冲突,比如,写的一个odbc连接程序里有个表,其中就用了desc作为说明字段名。

后果可想而知!

desc是descending缩写后的保留词。

表里的一个select*语句倒是能用,但我得到的却是一大堆毫无用处的信息。

  1.4保持字段名和类型的一致性

  在命名字段并为其指定数据类型的时候一定要保证一致性。

假如字段在某个表中叫做“agreementnumber”,你就别在另一个表里把名字改成“ref1”。

假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。

记住,你干完自己的活了,其他人还要用你的数据库呢。

  2命名规则:

  2.1数据库(database)的定义

  数据库名称=数据库内容标识(首字大写)

  2.2表(table)的定义

  命名应尽量反映存储的数据内容。

  表名前缀:

以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识表名称=表名前缀+表内容标识(首字大写)

  如clientinfo相关联的一系的表以ci作为前缀,

  即有表名:

cihistory,cicontact,cibusiness

  2.3字段(Field)的定义

  字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。

  字段名称=字段类型前缀+字段内容标识(首字大写)

  2.4视图名

  视图的名称="vw"+视图内容标识(首字大写)

  如vuserperm

  2.5触发器名

  触发类型触发标识

  -----------------------------------

  inserti

  deleted

  updateu

  触发名="tr"+触发标识+相应的表名

  如:

triclient,trdclient。

  2.6存储过程名

  存储过程功能存储过程功能前缀

  ----------------------------------------

  添加a

  更新u

  删除d

  查询或其它o

  存储过程名称=存储过程功能前缀+存储过程内容标识(首字大写)

  如spochkuserperm

  2.7变量名

  每个单词的首个字母为大写,如@employeename。

  2.8命名中其他注意事项

  禁止使用中文命名!

!

!

!

!

  命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。

命名都采用英文字符,每个单词的首个字母要大写

  2.9sql语句的编写规范

  数据库中存储过程和触发器中涉及大量的sql语句,对sql语句的编写规范如下:

关键字大写:

在sql语句的编写中,凡是sql语句的关键字一律大写,如:

select、oRdeRby、gRoupby、FRom、wheRe、update、inseRtinto、set、begin、end......

  2.10Rule

  ru+Rule标识

  2.11主键

  pk+表名+主键标识

  2.12外键

  fk+表名+主表名+外键标识

  2.13索引

  idx+字段标识

  2.14default

  df+default标识

  3编程结构和描述

  sqlseRVeR系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条sql语句。

批处理中的语句是作为一组去进行语法分析、编译和执行的。

触发器、存储过程等数据对象则是将批处理永久化的方法。

  3.1注释

  注释可以包含在批处理中。

在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。

本规范建议:

  1、注释以英文为主。

  实际应用中,发现以中文注释的sql语句版本在英文环境中不可用。

为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。

  2、注释尽可能详细、全面。

  创建每一数据对象前,应具体描述该对象的功能和用途。

  传入参数的含义应该有所说明。

如果取值范围确定,也应该一并说明。

取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

  3、注释语法包含两种情况:

单行注释、多行注释

  单行注释:

注释前有两个连字符(--),最后以行尾序列(cR-lF)结束。

一般,对变量、条件子句可以采用该类注释。

  多行注释:

符号/*和*/之间的内容为注释内容。

对某项完整的操作建议使用该类注释。

  4、注释简洁,同时应描述清晰。

  3.2函数注释:

  编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释。

该注释以多行注释为主,主要结构如下:

  /*******************************************************************************************

  *存储过程:

读取用户所分配的操作模块及具体权限

  *编制者:

saiko

  *修改人:

  *编制日期:

20xx.11.27

  *输入参数:

共有2个参数

  *@cuserno:

用户编号

  *@cuserpassword:

验证密码

  *输出参数:

@eResult1.成功=销售@00012.失败=null3.与@eResult无关输出是记录集

  *调用例子:

declare@eResultvarchar(50)execuchkuserperm0755,123456,销售*说明:

  *

  ******************************************************************************************/

  篇二:

sqlserver的命名规则

  sqlserver的命名规则

  为了提供完善的数据库管理机制,sqlserver设计了严格的命名规则。

在创建或引用数据库实体,如表、索引、约束等时,必须遵守sqlserver的命名规则,否则有可能发生一些难以预料和检查的错误。

  本文将讲述:

标识符的分类和格式规定;数据库对象的命名规定与使用原则。

标识符分类

  sqlserver的所有对象,包括服务器、数据库以及数据库对象,如表、视图、列、索引、触发器、存储过程、规则、默认值和约束等都可以有一个标识符。

对绝大多数对象来说,标识符是必不可少的,但对某些对象如约束来说,是否规定标识符是可选的。

对象的标识符一般在创建对象时定义,作为引用对象的工具使用。

  例如下面的sql语句:

  createtablestudent

  (

  idintprimarykey,

  namevarchar(20)

  )

  这个例子创建了一个表格,表格的名字是一个标识符:

student;表格中定义了两列,列的名字分别是id,name,他们都是合法的标识符。

这个例子还定义另外一个未命名的主键约束。

  sqlserver一共定义了两种类型的标识符:

规则标识符(Regularidentifier)和界定标识符(delimitedidentifier)。

  规则标识符

  规则标识符严格遵守标识符有关格式的规定。

所以在t-sql语句中凡是规则标识符都不必使用界定符,如[]和‘’,来进行界定。

  如上述例子中使用的表名student就是一个规则标识符,在student上不必添加界定符。

  界定标识符

  界定标识符是那些使用了如[]和‘’等界定符号来进行位置限定的标识符,使用了界定标识符,既可以遵守标识符命名规则,也可以不遵守标识符命名规则。

  select*from[student]是要从student表格中查询出所有的数据与

  select*fromstudent等效。

  为什么呢?

因为在“[]”中的标识符遵守标识符命名规则,“[]”被忽略不计。

但如果是不遵守标识符命名规则的标识符,那么在t-sql语句中必须使用界定符号加以限定,如:

  select*from[mytable]

  where[order]=10

  在这个例子中,必须使用界定标识符,因为在from子句中的标识符mytalbe中含有空格,而where子句中的标识符order是系统保留字(在查询分析器里“order”变蓝色)。

这两个标识符都不遵守标识符命名规则,必须使用界定符,否则无法通过代码编译。

标识符格式

  标识符格式的规定,其具体内容如下:

  标识符的首字母必须是以下两种情况之一:

  所有在统一码(unicode)2.0标准规定的字符,包括26个英文字母a-z和a-z,以及其他一些语言字符,如汉字。

例如可以给一个表格命名为“学生基本情况”。

下划线“-”、“@”或“#”。

  标识符首字母后的字符可以是:

  所有在统一码(unicode)2.0标准规定的字符,包括26个英文字母a-z和a-z,以及其他一些语言字符,如汉字。

下划线“-”、“@”、“$”或“#”。

  0,1,2,3,4,5,6,7,8,9。

  标识符不允许是t-sql的保留字。

  由于t-sql不区分大小写,所以无论是保留字的大写还是小写都不允许使用。

  标识符内部不允许有空格或特殊字符。

  select*fromstu[de]nt–编译器将返回错误信息。

因为在标识符stu[de]nt中包含了特殊字符“[”和“]”,所以在编译上述语句时出错。

  以某些特殊符号开头的标识符在sqlserver系统中具有特定的含义。

如“@”开头的标识符表示这是一个局部变量或是一个函数的参数;以“#”开头的标识符表示这是一个临时表或存储过程;一个以“##”开头的标识符表示这是一个全局的临时数据库对象。

t-sql的全局变量以标志“@@”开头。

为避免同这些全局变量混淆,建议不要使用“@@”作为标识符的开始。

  无论是界定标识符还是规则标识符都最多只能容纳128个字符,对于本地的临时表最多可以有116个字符。

  对象命名规则

  sqlserver的数据库对象名字由1-128个字符组成,不区分大小写。

在一个数据库中创建了一个数据库对象后,数据库对象的全名应该由服务器名、数据库名、拥有者名和对象名这四个部分组成,格式如下:

  [[[server.][database].][owner_name].]object_name命名必须都要符合标识符的规定。

  在实际引用对象时,可以省略其中某部分的名称,只留下空白的位置。

  实例的命名习惯

  在sqlserver2000中默认实例的名字采用计算机名,实例的名字一般由计算机名字和实例名字两部分组成。

  总之,正确掌握数据库的命名和引用方式是用好sqlserver的前提,也有助于用户理解sqlserver中的其他内容。

  篇三:

sql数据库命名规范

  sql编程命名规范

  一、命名规则总原则:

【不准使用中文或大写英文字母,以容易记忆和理解为原则,可以使用英

  文和汉语拼音简写,分隔符号为下划线,总长度不得超过20位】1、表名

  命名应尽量反映存储的数据内容。

结构为模块的简写+下划线+名字。

  例如:

用户信息表,他属于系统管理模块,这里以x作为系统管理模块的简写,user作为用户信息的名字,这样用户信息表就命名为:

x_user。

2、视图名

  视图以view_作为前缀。

命名应尽量体现各视图的功能。

3、触发器名

  以tr作为前缀,然后加上为相应的表名再加上后缀,insert触发器加_i,delete触发器加_d,update触发器加_u,如:

在表kc_jc进行更新操作后执行一个功能,则触发器的名字为:

tr_kc_jc_u。

4、存储过程名

  参考表的命名规则,存储过程应以p_开头,然后是模块名字,后续部分主要体现存储过程的作用。

比如一个执行工资计算的存储过程,他属于工资模块,可以命名为。

p_gz_compute。

5、函数

  参考表的命名规则,函数以f作为前缀,然后是模块名字,后续部分主要体现函数的作用。

如:

一个获得物料清单(bom表)的,属于基本资料模块,可以命名为:

f_jbzl_bom。

  6、主键、外键关系、索引命名原则

  主键:

pk_表名

  外键关系:

Fk_主表_从表

  索引:

id_列名,符合索引列名间用_隔开7、变量名采用小写,要体现变量的含义。

8、字段命名规则

  表简称+字段简称+类型x_userunamestru_namestrunameu_name

  类型简写+序号类型例子Varcharstr01,str02intint01,int02datetimedt01,dt02decimaldec01,dec02texttxt01,txt02imageimg01,img02

  9、表设计规则

  通常情况下用下面的设计,当一个表所用的的业务类型字段很通用时,那么设计时用中文简写或者英文

  二、代码、注释说明

  1、代码书写要执行sqlseRVeR的默认规范.。

  结构编排清晰,前后对称,这里就不作详细规定。

2、注释以中文为主。

  考虑实际应用中,发现以往中文注释的sql语句版本在英文环境中不可用。

为避免后续版本执行过程中发生某些异常错误,建议也可根据项目环境的需要而使用英文注释。

  3、注释尽可能详细、全面。

创建每一数据对象前,应具体描述该对象的功能和用途。

传入参数的含义应该有所说明。

如果取值范围确定,也应该一并说明。

取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

注释简洁,同时应描述清晰。

注释的位置不作强制要求,以容易辅助阅读理解为准。

  4、功能、函数注释,可以参考如下结构:

  /*************************************************************************name:

--函数名*function:

--函数功能*input:

--输入参数*output:

--输出参数

  *author:

--作者*createdate:

--创建时间

  *updatedate:

--函数更改信息(包括作者、时间、更改内容等)*************************************************************************/

  5、sql代码规则

  所有sql关键字采用大写形式,如select、FRom、wheRe、oRdeRby、gRoupby等。

  6、sql结构规则及空格处理一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进

  where子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,连接符右对齐。

如下所示:

  select字段1,字段1,字段1,字段1,字段1,字段1,字段1,字段1,FRom表1,表2

  wheRe表1.id=表2.idoRdeRby表1.idgRoupby表1.id

  空格处理:

关键字后面加空格逗号后面加空格

  等号、大于等于、小于等于、like等连接符前后都要加一个空格三、书写优化建议

  1、避免嵌套连接。

例如:

a=bandb=candc=d

  2、系统可能选择基于规则的优化器,所以将结果集返回数据量小的表作为驱动表

  (from后边最后一个表(sqlserver命名规范))。

  3、大量的排序操作影响系统性能,所以尽量减少orderby和groupby排序操作。

  如必须使用排序操作,请遵循如下规则:

(1)排序尽量建立在有索引的列上。

  

(2)如结果集不需唯一,使用unionall代替union。

4、索引的使用。

  

(1)尽量避免对索引列进行计算。

如对索引列计算较多,请提请系统管理员建立函

  数索引。

  

(2)尽量注意比较值与索引列数据类型的一致性。

(3)对于复合索引,sql语句必须使用主索引列(4)索引中,尽量避免使用null。

  (5)对于索引的比较,尽量避免使用not=(!

=)(6)查询列和排序列与索引列次序保持一致

  5、查询的wheRe过滤原则,应使过滤记录数最多的条件放在最前面。

  6、任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要

  尽可能将操作移至等号右边。

  7、in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子

  句拆开;拆开的子句中应该包含索引。

  四、其他经验性规则

  1、尽量少用嵌套查询。

如必须,请用notexist代替notin子句。

如例

(2)2、用多表连接代替exists子句。

如例(3)3、少用distinct,用exists代替如例(4)

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1