1. 前言
随着编程语言从注重“更容易让机器理解”的低级语言(如计算机语言和编程语言)向“更容易让人类理解”的高级语言发展,人们对“编程语言应该是一种人类可以读得懂,写得出的语言”这样的观点越来越认同,于是从认知心理学的角度研究编程风格的领域应运而生。(认知心理学:能跑起来就行,效率才是一切)
2. 表的设计
- 名字和意义
名称l包括用来指代具体东西的固有名称,也包含用来指代概念或者集合的一般名称
命名是允许的字符有一下三种
1. 英文字母
2. 阿拉伯数字
3. 下划线“_”
- 属性和列
不能一个列包含多个意义
3. 编程的方针
3.1 注释
还是最好写注释
- SQL是申明式语言,即使表达同样的处理过程,逻辑任然比面向过程语言凝练的多
- SQL很难进行分步的执行调试
3.2 缩进
- 子查询需要缩进一层
- 在SELECT子句和GROUP BY子句指定多列时,需要缩进一层
- 关键字应该右齐
3.3 空格
代码中需要适当的留一些空格
3.4 大小写
关键字使用大写字母,列名和表名使用小写字母(表名首字母大写)
3.5 逗号
SELECT col_1
, col_2
, col_3
, col-4
FROM tbl_A;
--建议逗号写在列名前面
3.6 不适用通配符
SELECT * FROM SomeTable; -- X
SELECT col_1,col_2 ... FROM SomeTable; --√
4. SQL编程方法
4.1 请说普通话
SQL是一种由多种方言的语言,各种数据库实现都为我们做了各种扩展,但还是请用标准语法吧
- 不适用依赖各种数据库实现的函数和运算符
- 连接操作使用标准语法
4.2 “左派"和"右派”
左连接一般情况下表头都出现在左边,使用左边的表作为主表的话,SQL就能和执行结果在格式上保存一致
4.3 从FROM自己开始写
因为SELECT子句是SQL语句最后执行的部分,写的时候根本没有必要太在意
SQL中各部分的执行顺序是:FROM,WHERE,GROUP BY,HAVING,SELECT
本节要点:
- 可读性和效率并非水火不容的关系,有些时候鱼和熊掌是可以兼得的
- 如果硬件和数据库本身的性能提升了,就是我们不对SQL做什么优化,性能也能得到提升。相反,代码难读的问题没有谁能帮我们解决,能保证代码可读性的只有开发者自己