oflyhigh avatar

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

oflyhigh

Published: 15 Jun 2025 › Updated: 15 Jun 2025每天进步一点点:SQL的注释

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

最近O哥奋发图强每天都在努力学习,比如说写点Python程序,又比如说写点PHP代码,有时候也用SQL来做一些数据分析,等等等等。

image.png
(图源 :pixabay)

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

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

说到用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

是不是很简单?

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

注释类型SQLC 语言PHPPython
单行注释-- 注释内容// 注释内容// 注释内容# 注释内容
多行注释/* 注释内容 *//* 注释内容 *//* 注释内容 */''' 注释内容 '''

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

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

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

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

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh