1、注释
- -
/**/
2、缩进
代码难以阅读的首要原因是没有进行缩进,其次是没有对长代码划分模块,所有的都揉在一起
好的示例
select col_1,
col_2,
col_3,
count(*)
from tab
where col_1 = 'a'
and col_2 = ( select max (col_2)
from tab2
where col_3 = 100 )
group by col_1,
col_2,
col_3
从上面的示例可以看出,子查询的代码缩进了一层,请牢记这个规则。子查询这个名称的开头是子,这就说明它是低一层的逻辑
而且比起所有关键字都顶格左齐的写法,下面这种关键字右齐的写法更好,因为紧接着的列名或表名的位置也能对齐,代码更容易读
(1) 左齐
select
from
where
group by
having
order by
(2) 右齐
select
from
where
group by
having
order by
3、空格
不管用什么语言编程都一样,代码中需要适当地留一些空格,如果一点都不留,所有的代码都紧凑到一起,代码的逻辑单元就会不明确
好的示例
select col_1
from tbl_a a, tbl_b b
where ( a.col_1 >= 100 or a.col_2 in ( 'a','b' ) )
and a.col_3 = b.col_3
4、大小写
sql中关于应该如何区分使用大小写字母有着不成文的约定:关键字使用大写字母,列名和表名使用小写字母
5、逗号
好的示例
select col_1
, col_2
, col_3
, col_42
from tab_a
除了逗号,还有+ -等二元运算符以及and、or,起到的是连接要素的作用,一般都写在行的开头
这样前置逗号的定法有两个好处,一是删掉最后一列后执行也不会出错,二是每行中逗号都出现在同一列,使用Emacs等可以进行矩形区域选择的编辑器会非常方便
6、不使用通配符
7、order by中不使用列编号