每天进步一点点:SQL的注释

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@oflyhigh·
52.596 HBD
每天进步一点点:SQL的注释
最近O哥奋发图强每天都在努力学习,比如说写点Python程序,又比如说写点PHP代码,有时候也用SQL来做一些数据分析,等等等等。

![image.png](https://images.hive.blog/DQmPQVkwTyjuqZgb9w6QZ7MiGRFwLS73NiNcZZiujsfsSDj/image.png)
(图源 :[pixabay](https://pixabay.com/photos/lightbulb-idea-creativity-base-3104355/))


虽然忙忙碌碌把自己搞得晕头转向也没啥成果产生,但还是乐此不疲。不由得曾经一个前上司说的一句话:***生命在于折腾***。

确实如此呀,模仿那句经典的我思故我在,咱也整上一句***我折腾故我在***,哪天真的彻底不折腾了,那一定是嘎了。话说,这句会被载入史册不?

说到用SQL做数据分析,O哥写了好多条好大坨(咦,为什么要用`坨`这个量词呢?好像不太文雅呀😳)极其复杂的SQL查询。

然后O哥就发现,要在好大坨的极其复杂的SQL查询上做一些修改让它完成不同功能,是一件极其令人抓狂的事情,因为改来改去,把SQL弄得乱七八糟,更加复杂了。

于是O哥想了一个极傻的方法,那就是每实现一个功能,备份一条大坨SQL,就导致LINQPad中的SQL查询越来越多,找起来越来越复杂。

让O哥想一下,以前有没有遇到过类似问题呢?又是怎么解决的呢?抓耳挠腮想了半天,发现还真没遇到过。

以前我都是在程序中使用SQL,就是用来做最最最基本、最最简单的查询,然后再又程序来进行数据加工,得到我想要的数据,所以根本就谈不上复杂,也不存在把自己搞迷糊的情况。

而现在的情况是O哥总想着让SQL自己就是一个程序,把所有能做的事情都做了,不用再额外使用程序对数据进行处理加工了,这样当然就弄得极其复杂了。

习惯了这样操作而且发现这样操作大多时候可以满足我的需求之后,再也不想用以前的方法了。那如何破解当前的窘境呢?

以前写程序的时候会根据功能或者逻辑定义多个文件,还会选择把常用的逻辑包装成函数(或者模块之类的),但是在SQL查询中这样弄无疑会让原本简单的事情更加复杂,而且我总担心会不会影响性能?


在研究半天各种高级功能晕头转向之后,我突然想到何不使用注释呢?如果针对不同的功能使用注释进行相应的开关,不就搞定了嘛?

注释大法是我以前在各种程序打开关闭不同功能时常用的方法,只是以往从来没有在SQL中这样用过(简单的SQL也根本不需要这样用),倒是犯了灯下黑的错误呢。

SQL注释分单行和多行注释,语法分别是单行注释用`-- `多行注释用`/* ... */`,当然也可以不嫌麻烦用单行注释来逐行注释。

单行注释的例子(以及逐行注释):
```
-- SELECT * FROM Users
-- WHERE Age > 18
-- ORDER BY Name
```

多行注释的例子:
```
/*
注释的第一行
注释的第二行
注释的第三行
*/
SELECT * FROM Users
```
是不是很简单?

让人有些头疼的是,不同语言,单行多行注释更有各的方法,由于经常摆弄不同语言,总犯把注释用错的低级错误。所以我整理出来一个简单的表格,这样以后就不怕弄错了。

| 注释类型     | SQL                    | C 语言                 | PHP                          | Python                         |
|----|----|---|----|----|
| 单行注释     | `-- 注释内容`          | `// 注释内容`          | `// 注释内容` | `# 注释内容`                   |
| 多行注释     | `/* 注释内容 */`       | `/* 注释内容 */`       | `/* 注释内容 */`             | `''' 注释内容 '''`  |

补充一下,PHP单行注释也支持`# 注释内容`,但是这样并不常用。PHP的多行注释不但支持`''' 注释内容 '''`也支持 `""" 注释内容 """`。

还有就是这些语言中都不支持多行注释`/* ... */ `的嵌套使用,会导致语法错误,也要注意。在C语言和C++中我以前还时常用宏定义来开关某段代码,也是非常方便的。


哎,又扯远了,不多扯了,继续折腾去喽。
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,