如何更优雅的写出你的SQL语句

数据库2025-11-05 16:05:056233

毫无疑问,何更编写代码是优雅L语一门艺术而非科学,没有程序员可以编写出既可读又可维护的何更漂亮代码,即使有经验也是优雅L语如此。

一般来说,何更当您学习编码的优雅L语艺术时,编码水平会随着经验而提高,何更例如,优雅L语你会变得更喜欢组合而不是何更继承或更喜欢接口而不是实现,但是优雅L语只有少数开发人员能够掌握这些技术。

SQL查询也是何更如此。您构建查询的优雅L语方式,您编写它的何更方式,如果正确的优雅L语话,可以很好地将您的何更意图传达给其他开发人员。

常常,在我看到来自多个开发人员的电子邮件中的SQL查询时,我能看出他们的编写风格的显著差异。b2b信息网一些开发人员编写得非常整洁,并且对查询进行了适当的缩进,这使得很容易发现关键细节,例如,从哪个表中提取哪些列以及哪些是条件。

因为在实际的项目中,SQL查询并不是单行的,所以当您需要以后阅读这些SQL查询或需要将该查询共享给某人进行检查或执行时,这种情况下,学习正确的编写SQL查询的方式会带来很大的不同。

在本文中,我将向您展示一些我过去尝试过的编写风格,介绍它们的优缺点以及我认为***的SQL查询编写方式。

除非你有很好的理由不使用我推荐的风格,例如:你有更好的风格,或者你想坚持项目中一直使用的风格(一致性压倒一切),没有理由不使用它。

顺便说一句,源码下载我希望您熟悉SQL,了解SQL查询中的不同子句及其含义。如果不是,你***通过参加一个很好的课程来获得SQL经验,比如:

From 0 To 1:SQL And Databases — Heavy Lifting by Loony Corn

Introduction to SQL by Jon Flanders

我强烈推荐后者。

***种写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)让条件语句都放在单独的免费源码下载行上,可以容易的注释掉某个条件进行调试。 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%; add e.salary > 5000

顺便说一句,如果您喜欢用大写字母表示关键字,您还可以编写如下所示的相同的SQL查询,这些规则是相同的,只是关键字是大写字母。

这就是我要说的如何编写可读和更易于维护的SQL查询。对于SQL查询的缩进或样式化,您有什么看法?

这是一种简单的技术,但非常强大,对于提高涉及多个连接的复杂SQL查询的可读性大有帮助,如我前面的示例所示。

如果您喜欢,也可以在网上使用各种SQL格式器,但我建议您学习一种样式并坚持使用它,而不是依赖于格式器。

感谢阅读本文,请让我们知道如何编写SQL查询?你用的是哪种风格,还是你有自己的风格?如果您是初学者和学习SQL,您会发现我的免费SQL课程和书籍列表对你会有帮助。

本文地址:http://www.bzve.cn/html/14c62499361.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

假如你想清理你的 Ubuntu 主机,你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。移除多余软件包这又是一个内置功能,但这次我们不必使用新得立包管理软件(Synaptic Package Manager),而是在终端中达到目的。现在,在终端窗口中键入如下命令:复制代码代码如下:sudo apt-get autoclean这便激活了包清除命令。这个命令所做的工作是: 自动清除那些当你安装或升级程序时系统所缓存的 .deb 包(即清除 /var/cache/apt/archives 目录,不过只清理过时的包)。假如需要使用清除命令,只需在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get clean然后你就可以使用自动移除命令。这个命令所做的工作是:清除那些 在系统中被某个已经卸载的软件 作为依赖所安装的软件包。要使用自动移除命令,在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get autoremove移除不需要的本地化数据为达到此目的,我们需要安装 localepurge 软件,它将自动移除一些不需要的本地化数据(LCTT 译注:即各种语言翻译)。这个软件是一个简单的脚本,它将从那些不再需要的本地化文件和本地化联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。在 Ubuntu 中安装 localepurge:复制代码代码如下:sudo apt-get install localepurge在通过 apt-get install 安装任意软件后, localepurge 将移除所有不是使用你系统中所设定语言的翻译文件和翻译的联机手册。假如你想设置 localepurge,你需要编辑 /ect/locale.nopurge 文件。根据你已经安装的软件,这将为你节省几兆的磁盘空间。例子:假如我试着使用 apt-get 来安装 dicus软件:复制代码代码如下:sudo apt-get install discus在软件安装完毕之后,你将看到如下提示:复制代码代码如下:localepurge: Disk space freed in /usr/share/locale: 41860K移除孤包假如你想移除孤包,你需要安装 deborphan 软件:在 Ubuntu 中安装 deborphan :复制代码代码如下:sudo apt-get install deborphan使用 deborphan,打开终端并键入如下命令即可:复制代码代码如下:sudo deborphan | xargs sudo apt-get -y remove --purge使用 GtkOrphan 来移除孤包GtkOrphan (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析用户安装过程状态并查找孤立库文件的图形化工具,它为 deborphan 提供了一个 GUI 前端,并具备移除软件包的功能。在 Ubuntu 中安装 GtkOrphan,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install gtkorphan一张截图使用 Wajig 移除孤包Wajig是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起,它的设计初衷是使用简单和为它的所有功能提供丰富的文档。通过适当的 sudo配置,大多数(假如不是全部)的软件包安装和创建等任务可以通过一个用户 shell 来完成。Wajig 也适用于一般的系统管理。另外,一个 Gnome GUI 命令 gjig也被囊括在这个软件包之中。在 Ubuntu 中安装 Wajig,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install wajigDebfoster --- 跟踪你在安装过程中的操作debfoster 将会维护一个列有被明确需要安装的软件包的列表,但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的,你甚至可以使得在 dpkg 和/或 apt-get 每次运行之后马上激活 debfoster 。另外,你还可以在命令行中使用 debfoster 来安装或移除某些特定的软件包。那些后缀为 --- 的软件包将会被移除,而没有后缀的软件包将会被安装。假如一个新的软件包或 debfoster 注意到作为某个软件包的依赖的软件包是一个孤包,则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包, debfoster 将只会进行记录并继续安装过程;若你觉得这个软件包不足以引起你的兴趣,在 debfoster 询问这个问题后,它将移除这个软件包。进一步的,假如你的决定使得其他的软件包变为孤包,更多的提问将会接踵而来。在 Ubuntu 中安装 debfoster,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install debfoster使用 debfoster为了创建一个初始跟踪文件,可以使用如下命令:复制代码代码如下:sudo debfoster -q你总可以编辑 /var/lib/debfoster/keepers 文件,来定义那些你想留在系统中的软件包。为了编辑这个文件,可以键入:复制代码代码如下:sudo vi /var/lib/debfoster/keepers要强制使 debfoster 去移除所有没有被列在上面这个文件的软件包,或安装作为某些列在这个文件中的软件包的依赖,它也同时会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作,只需执行:复制代码代码如下:sudo debfoster -f若需要跟踪你新安装的软件包,你需要时不时地执行如下命令:复制代码代码如下:sudo debfosterxdiskusage -- 查看你的硬盘空间都去哪儿了图形化地展示磁盘使用情况的 du。xdiskusage 是一个用户友好型的程序,它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。做了一些修改以使得它可以为你运行 “du”命令,并显示磁盘的剩余空间,并且假如你想清晰地了解你的磁盘空间都去哪儿了,它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。在 Ubuntu 中安装 xdiskusage,只需使用如下命令:复制代码代码如下:sudo apt-get install xdiskusage若你想打开这个应用,你需要使用如下命令:复制代码代码如下: sudo xdiskusage一旦这个应用被打开,你将看到如下图所示的界面:BleachbitBleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以释放缓存,删除 cookie,清除 Internet 上网历史,粉碎临时文件,删除日志,丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统而设计,它支持擦除清理数以千计的应用程序,如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件,BleachBit 还包括许多高级功能,诸如粉碎文件以防止恢复,擦除磁盘空间来隐藏被其他应用程序所删除文件的痕迹,为火狐“除尘”,使其速度更快等。比免费更好,BleachBit 是一个开源软件。在 Ubuntu 中安装 Bleachbit,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install bleachbit一张截图

SQL Server CTEs的语法与功能

如何使用lazyCSRF在Burp Suite上生成强大的CSRF PoC

微软发布补丁 修复HTTP协议堆栈远程执行代码漏洞

了解AMDRX470显卡(探索RX470显卡的卓越性能和先进技术)

DB2数据库为单个会话锁定“窍门”

如何使用Whispers识别静态结构化文本中的硬编码敏感信息

SQL Server ASP代码与Access ASP代码的比较

友情链接

滇ICP备2023006006号-39