毫无疑问,编写代码是一门艺术而非科学,没有程序员可以编写出既可读又可维护的漂亮代码,即使有经验也是如此。
一般来说,当您学习编码的艺术时,编码水平会随着经验而提高,例如,你会变得更喜欢组合而不是继承或更喜欢接口而不是实现,但是只有少数开发人员能够掌握这些技术。
SQL查询也是如此。您构建查询的方式,您编写它的方式,如果正确的话,可以很好地将您的意图传达给其他开发人员。
需要更多教程,微信扫码即可
在本文中,我将向您展示一些我过去尝试过的编写风格,介绍它们的优缺点以及我认为最好的SQL查询编写方式。
# 第一种写SQL的方式
SELECT e.emp_id, e.emp_name, d.dept_name, p.project_name from Employee e
INNER JOIN Department d ON e.dept_id = d.dept_id INNER JOIN Projects p
ON e.project_id = p.project_id Where d.dept_name="finance" and e.emp_name
like '%A%' and e.salary > 5000;
优点:
1)使用了大小写混合将关键字从列和表名之间分开,如SELECT使用大写,而Employee使用首字母大写,但如果你喜欢一致性的话,可以让from关键字也大写,没有研究只显示那种写法更好。
缺点:
1)大小写混合
2)整个查询写在一行上,一旦表和列的数量增加,这一行就不可读了
3)在添加新条件或删掉条件时没有灵活性
# 第二种书写SQL查询的方式
SELECT e.emp_id, e.emp_name, d.dept_name, p.project_name
from Employee e
INNER JOIN Department d ON e.dept_id = d.dept_id
INNER JOIN Projects p ON e.project_id = p.project_id
Where d.dept_name="finance"
and e.emp_name like '%A%'
and e.salary > 500;
改进:
1) SQL查询被划分为多行,使其更具可读性
问题
1)大小写混合
2) where子句上的所有条件位于同一行上,也就是说通过注释排除它们不是那么容易。
# 第三种书写SQL的方式,也是做好的一种
select e.emp_id, e.emp_name, d.dept_name
from Employee e
inner join Department d on e.dept_id = d.dept_id
where d.dept_name = 'finance'
and e.emp_name like '%A%'
and e.salary > 500;
1)将SQL查询划分为多行可以提高可读性
2)使用适当的缩进可以很容易地找到数据源,例如表和join
3)让条件语句都放在单独的行上,可以容易的注释掉某个条件进行调试。
elect e.emp_id, e.emp_name, d.dept_name
from Employee e
inner join Department d on e.dept_id = d.dept_id
where d.dept_name = 'finance'
-- and e.emp_name like '%A%';
add e.salary > 5000
顺便说一句,如果您喜欢用大写字母表示关键字,您还可以编写如下所示的相同的SQL查询,这些规则是相同的,只是关键字是大写字母。
这就是我要说的如何编写可读和更易于维护的SQL查询。对于SQL查询的缩进或样式化,您有什么看法?
文末福利
需要更多教程,微信扫码即可
别忘了扫码领取资料哦
【高清学习线路图】和【全套学习视频及相关资料】