当前位置: 亚太娱乐 > 樱桃树种子 >

标识符的定名老例设定法则(节选自《SQL手艺手

发布时间: 2019-05-23

  数据库中的所有对象要全数利用大写字母或全数利用小写字母。某些数据库办事器对大小写,因而利用大小写夹杂的标识符(mixed-case identifier)可能会形成日后的问题。

  标识符法则——这是由SQL尺度设定并由平台实现的法则。这些法则包罗如名称长度如许的特征。本章后面将申明每个数据库厂商的标识符设定老例。

  记住,援用标识符(正在特殊定界符内包住的对象名凡是是双引号)可用来前面的某些标识符的法则。一个示例是,援用标识符是区分大小写的——即“foo”并不等于“FOO”。此外,援用标识符可让保留字成为名称或凡是答应正在名称内插手一般不克不及用的字母及符号。例如,一般表名内并不克不及利用百分比符号(%)。可是,只需将表名永久放正在双引号中,便能够正在表名内插手百分比符号(%)。即,若是把表名定名为expense%%ratios,就必需将名称放正在双引号内:“expense%- %ratios”。别的,请记住,正在SQL3中,这些名称有时称为定界标识符(delimited identifier)。

  若是数据库平台的表名长度可达32个字符,那么正在字尾至多要保留几个空格。某些数据库平台正在操做表的姑且文件时,会正在表名中插手前缀或后缀。

  选择好缩写当前,整个数据库都要利用分歧的缩写。例如,若是以“EMP”做为“EMPLOYEE”的缩写,那么整个数据库都应利用“EMP”。不要正在某些处所利用“EMP”,而正在别的一些处所利用“EMPLOYEE”。

  标识符正在其感化域范畴内必需是独一的。因而,正在前面会商的数据库对象条理布局中,数据库办事器上的特定实例的数据库名必需是独一的,给定模式内的表名、视图、函数、触发器及存储过程也必需是独一的。另一方面,表及存储过程的名称能够不异,由于它们分属于分歧的对象类型。单一表或视图上的字段、环节字及索引名必需是独一的。有些平台必需利用独一的标识符,而有些未,细致消息请拜见数据库平台的说档。例如,Oracle要求数据库内所有的索引标识符都必需是独一的,而其他数据(如SQL Server)则只需求索引标识符对其相关的表有独一性即可。

  任何数字或字符及下划线(_)、井号(#)及美元符号$)(然而本书并不激励你利用最初两个符号)。数据库链接也包含句点(.)

  定名老例为选择对象标识符成立了一个尺度基线。本节将列出一些由多年经验堆集而获得的定名老例(选定标识符的法则)。SQL尺度除了标识符的独一性、长度及标识符内的无效字符外,它对定名老例并未做任何注释。可是,下面是你该当遵照的一些老例:

  提醒:一些平台答应利用除了双引号以外的定界符。例如,SQL Server利用方括号([ ])指明援用标识符。

  只要底层文件系统(例如,Mac OS 或 Unix)才区分大小写。触发器、日记文件组及表空间老是区分大小写的

  的定义,集群包含目次集,目次包含模式集,模式包含对象集等。大大都数据库平台利用推论术语:实例包含一个或多个数据库,数据库包含一个或多个模式,模式包含一个或多个数据表、视图或存储过程及取每个对象相关的权限。正在此架构的每一层上,这些项目均需要独一的名称(即标识符),以便于让法式及系统处置时能够援用该名称。这表白上的每个对象(无论是数据库、数据表、视图、列、索引、环节字、触发器、存储过程仍是束缚)都必需能被识别。发出建立数据库对象的号令时,必需明白指定新对象的标识符(即名称)。

  遵照这些定名老例的益处是:起首,SQL代码正在某种意义上就像记实(self-documenting)一样,所选的名称是成心义的,是其他用户能够理解的。其次,因为对象定名分歧,你便比力容易SQL代码及数据库对象(特别是对领受你工做的其他用户而言更是如斯)。最初,分歧性可提高数据库的功能性。一旦数据库要转换或转移到别的一个RDBMS时,分歧且富有描述性的定名可节流时间及精神。一起头多花些时间思虑SQL对象的定名,能够防止后续的问题。

  标识符设定法则是数据库平台用以识别数据库内数据对象的法则。这些法则合用于一般标识符,而不合用于援用标识符。SQL2003尺度设定的法则凡是取特定命据库厂商所设定的法则分歧。表2-1比力了SQL2003法则取本书中收录的那些RDBMS平台的法则。

  援用标识符(quotedidentifier)是对象名存储正在双引号内(ANSI尺度称之为定界标识符——elimited identifier)。援用标识符对大小写也是的。把标识符包含正在双引号内会建立出难用的、当前可能出问题的名称。例如,用户能够正在援用标识符中嵌入空格、特殊字符、大小写夹杂字符以至本义序列,可是因为一些第三方东西(以至是数据库厂商供给的东西)也无法处置名称中的特殊字符。因而,不该利用援用标识符。

  不要把表定名为XP03,而应把它定名为Expenses_2005,以显示此表是存储2005年的费用的。记住,其他人可能也会利用此表或数据库,大概你分开好久之后才有人利用它,因而你利用的名称应一目了然。虽然每个数据库厂商对对象名称的长度有,可是,凡是环境下名称仍是能够脚够长的,以便让用户都能看得懂。

  例如,别用DB_做为数据库名的前缀,每个视图名称的前缀不要利用“V_”。要能简单地查询数据库的系统表,数据库办理员或数据库法式员才能够晓得标识符所暗示的对象类型。

  定名老例——逻辑概测法(logical rule of thumb)可用于办理数据库设想师若何定名新对象。最终遵照这些逻辑法则可建立更好的数据库布局并能改良数据。这些并不是SQL的要求,而是实践中法式员累积的经验。

  相关链接:

    
    • 友情链接:

      Copyright 2018-2019 http://www.ytzqjx.com All Rights Reserved.版权所有 @