SQL书写规范/SQL编码规范,这一篇就够了
SQL代码规范
SQL(Structured Query Language),结构化查询语言。在数据分析、数据开发、数据库、大数据等的领域,具有不可或缺的地位,运用十分广泛。
规范化的SQL代码,能够提高代码的可读性,有利于快速定位问题,更有利于团队合作。合理的代码注释也有助于对代码的理解。
但是规范不等于强制约束,我们推荐使用SQL的过程中能注意编码规范,使得代码清晰、整齐、层次分明、结构性强。同时还有一些规范也是行业内约定俗成的,保持良好的编码规范也是一个优秀的程序员必备的素质。
SQL代码规范如下:
-
SQL语句中出现的所有表名、表别名、字段名、序列等数据库对象都应小写。
-
SQL语句中出现的系统保留字、内置函数名、SQL保留字、绑定变量等都应大写或小写,严禁使用大小写混合的书写。
例如:
select SELECT where WHERE union UNION insert INSERT count COUNT
错误示范:
Select -- 常见犯错 seLECT select clo1 FROM table1 where 1=1 AND 2=2
-
推荐使用单引号来表示字符值、字符串。
扩展:【SQL中单引号、双引号的区别】
原则上英文单引号、英文双引号都可以,一般应使用单引号。
如果字符串内需要包含单引号时,除了使用转义的办法外,我们可以选用一对双引号来包括字符串,这样字符串内的单引号被视作普通字符,无需特殊处理。
例如:Dljiang’s dog。以下三条语句输出是一致的,显然第一句更清晰select "Dljiang's dog"; select 'Dljiang''s dog'; select 'Dljiang\'s dog';
如果使用英文双引号引用的字符串内需要包含双引号时,除了使用转义的办法外,我们可以用一对单引号来包括字符串,这样字符串内的双引号被视作普通字符,无需特殊处理。
例如:She said: “Handsome Dljiang”。以下三条语句输出是一致的,显然第一句更清晰select 'She said: "Handsome Dljiang"'; select "She said: ""Handsome Dljiang"""; select "She said: \"Handsome Dljiang\"";
-
缩进应为1个Tab或者4个字符,所有的缩进均为1个缩进量的整数倍,按照代码层次对齐,同层次的SQL语句缩进应保持一致(纵向对齐)。
-
禁止使用
select *
操作,所有操作必须明确指定列名。 -
对应的括号要求在同一列的位置上,尤其用在子查询嵌套中!
-
代码中需要添加必要的注释,以增强代码的可读性。注释的规范:
每条SQL语句的注释单独成行,并放在语句的前面;
字段注释紧跟在字段后面;
对不易理解的分支条件表达式添加注释;
对重要的计算添加注释,说明其功能。
-- 单行注释 /* 多行注释 多行注释 */
-
select / from / where / order by / group by 等语句应独占一行。
-
子句跟语句占同一行原则:
select子句内容如果只有一项,应与 select 同占一行;
from 子句内容如果只有一项,应与 from 同占一行;
where 子句内容如果只有一项,应与 where 同占一行。
-
子句单独占一行原则:
select 子句内容如果多于一项,每一项都应独占一行,并在对应 select 的基础上向右缩进1个Tab或者4个字符;
from 子句内容如果多于一项,每一项都应独占一行,并在对应 from 的基础上向右缩进1个Tab或者4个字符;
where 子句的条件如果有多项,每一个条件应独占一行,并以 and 开头,并在对应 where 的基础上向右缩进1个Tab或者4个字符。
-
SQL文中不应出现空行。
-
合理使用空格。代码中应该适当留有一些空格,如果一点不留,代码都凑到一起, 逻辑单元不明确。
-- 好的示例 SELECT col_1 ,col_2 FROM tbl_A A WHERE A.col_1 >= 100 ; -- 坏的示例 SELECT col_1 ,col_2 FROM tbl_A A WHERE A.col_1>=100 ;
-
不等于推荐使用符号<>。
-
表名要有意义,且标准 SQL 中规定表名的第一个字符应该是字母。
-
insert 子句写在同一行,请勿换行。
-
SQL语句中出现多个表时,给每个表加上表别名。表别名的规范:
一旦在SELECT语句中给操作表定义了别名,在整个语句中对此表的引用都必须以别名替代,所以需要给所有的表添加别名;
表别名采用简单字符命名,建议按a、b、c、d…的顺序进行命名,并避免使用关键字;
多层次的嵌套子查询别名之前要体现层次关系,SQL语句的别名需要分层命名,从第1层次至第4层次,分别用P(Part) 、S(Segment)、 U(Unit) 和D(Detail)表示。您也可以用a、b、c、d来表示第1层次到第4层次。
对于同一层次的多个子句,在字母后加1、2、3、4……区分,并根据情况对表别名添加注释;
-
select 语句查询的字段,推荐将 , 写在字段前面。
-- 好的示例 SELECT col_1 ,col_2 ,col_3 FROM tbl_A A; -- 不推荐的示例 SELECT col_1, col_2, col_3 FROM tbl_A A;
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggcefc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13