复杂sql书写方法

栏目: 数据库 · 发布时间: 4年前

内容简介:给你一个复杂sql连接不同的表,多个嵌套查询条件等的语句时,你是非常的胆怯由于对语法的不熟悉以及没有经验和自信,现在我们来学习一下如何写复杂的sql,我们把它分解为很多小的步骤进行一、集中最后的输出结果开始在头脑中想到要输出的最终结果并且写下期待的结果集从查询中得到的,评估有多少记录你需要取回并且哪些表用于这些结果的输出。

给你一个复杂 sql 连接不同的表,多个嵌套查询条件等的语句时,你是非常的胆怯由于对语法的不熟悉以及没有经验和自信,现在我们来学习一下如何写复杂的sql,我们把它分解为很多小的步骤进行

一、集中最后的输出结果

开始在头脑中想到要输出的最终结果并且写下期待的结果集从查询中得到的,评估有多少记录你需要取回并且哪些表用于这些结果的输出。

二、理解数据库表关系

主要理解这些表之间的关系是一对一,还是一对多,还是多对多关系,ER图更能理清它们之间的关系,确保你需要哪些字段在这个表中进行连接。

三、将查询拆分为可管理的部分

请记住你不必须一个写下完整的sql语句。首先要确定表所需要的连接,并适当的引入相应的表。记住那个复杂的sql是简单sql的集合。测试那个查询在每个阶段一个接一个确保输出我们需要得到的结果。 一旦查询被创建,就应该在添加新表时一次又一次的进行测试。

四、聚合结果集

这是使用Group By语句聚合不同结果集的时间。您还可以根据需要使用多个聚合函数,如COUNT、MAX、SUM、MIN、SUM或AVG等。此外,如果结果集的顺序很重要,那么将它们按照语句order的正确顺序排列。

五、确保查询容易读

在需要的地方为SQL查询添加注释。不要添加不必要的注释,否则会使查询变得冗长乏味。请记住,SQL语句越长,执行语句就需要越多的带宽。尽量使用大多数开发人员经常使用的标准约定。

六、其它考虑的因素

对于一个复杂的sql查询,为查询使用存储过程是很常见的,但是在编写复杂的SQL查询时还需要考虑许多其他事实。

(1)复杂的sql查询是不可移植的对于其它数据库.

(2)众所周知,当调试很少时,测试是非常困难的.

(3)它们减少了应用服务器上的负载,但增加了web服务器上的负载.

您可以使用简单的SQL语句,然后在需要时使用更多的SQL语句将它们循环起来。经验丰富的数据库开发人员绝不会推荐这种方法,因为它既困难又混乱。最好的方法是实践SQL代码,并使用正确的技术或方法提高编写复杂SQL查询的效率。

七、为什么你应该避免复杂sql查询

一个复杂的SQL查询是许多连接和子查询的组合,很快您就会意识到长查询也是bug的根源,因此,这里的问题是,要么您应该寻找原始创建者来调试查询,要么您应该自己重新设计查询,以深入理解隐藏的复杂性。

复杂SQL查询的最大好处是从多个数据源获取数据,但是当开发人员过度使用时,它可能会产生问题。对于复杂的SQL查询,开发人员必须定义不同数据块之间的关系、连接表、对结果集进行分组、对结果集进行 排序 等等。

当您对修改数据库模式感兴趣时,它通常涉及重新设计查询,有时候,开发人员不喜欢更改数据模型,因为他们害怕重新创建大量SQL查询并将其按指定的顺序排列。

当复杂的SQL查询设计带来如此多的麻烦时,大多数开发人员都对使用替代方案(如果有的话)感兴趣.

八、复杂的sql查询替代方案。

对于复杂的SQL查询,有两种流行的替代方法,如下所示。

(1)使用大量的小的sql查询。

(2)你可以使用查询生成器。

第一个方案是简单的,而不是用一个包含所有内容的大型查询来访问数据库,将查询分解为更小的可管理单元。编写多个子查询来获取不同的数据段,单独处理它们,而不是一直使用聚合函数。对于新手 程序员 来说,它是最强大的方法,可以帮助彻底理解复杂的查询,而不必直接跳到最高效的解决方案。

当您希望使用小型查询时,不要忘记考虑效率方面的权衡。小查询通常不太倾向于管理职责,它们可以在不同的情况下自由应用。根据经验丰富的dba的说法,带有一组选定职责的小型查询通常很适合他们的工作,易于调试,而且语法错误也更少。

第二种方案涉及使用查询生成器。将大型查询分解为描述查询不同方面的小的可管理部分,这是最好的方法。它将提供一组具有共享概念的多个查询。您可以单独处理特定的集合,并尝试对其进行全面的逻辑或语法错误测试,以便稍后成功执行。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网金融手册

互联网金融手册

谢平、邹传伟、刘海二 / 中国人民大学出版社 / 2014-4-1 / 68.00元

本书作者在2012年4月7日“金融四十人年会”上首次公开提出了“互联网金融”概念。在短短两年中,互联网金融已经成为中国金融界和IT界最热门的词汇之一,相关创业活动也非常活跃。本书是作者两年来深入研究、思考的结晶,畅想了金融与IT结合的未来图景,将理论与实践高度融合,与读者分享了许多深具洞察力的观点。本书力图规范互联网金融的定义,完善互联网金融的理论体系,分析互联网金融目前的六种主要类型——金融互联......一起来看看 《互联网金融手册》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具