iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL的常见错误有哪些
  • 352
分享到

SQL的常见错误有哪些

2024-04-02 19:04:59 352人浏览 安东尼
摘要

本篇内容主要讲解“sql的常见错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL的常见错误有哪些”吧!1. Queries语句的执行顺序SQL的入门

本篇内容主要讲解“sql的常见错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL的常见错误有哪些”吧!

1. Queries语句的执行顺序

SQL的常见错误有哪些

SQL的入门门槛很低。很多人认为会使用Join, Group By 语句就可以自诩专家了。但是“砖家”们真的知道SQL语句的执行顺序吗?

SQL查询不是以SELECT开始的,虽然我们编写代码时,它们在编辑器中是从Select开始编写的,但是实际执行却并不是从SELECT开始的。

数据库首先使用FROM和JOIN执行查询,这就是为什么我们可以在WHERE中使用合并表中的值。

为什么我们不能在WHERE语句中筛选分组(GROUP BY) 的结果?因为GROUP  BY在WHERE之后才会被执行。因此,我们需要通过HAVING进行更进一步的条件筛选。

常规情况下,SELECT是最后执行语句。它决定了查询结果需要输出哪些列,并进行何种聚合运算。此外,WINDOW FUNCTioN 在这一步被执行。

这就是为什么当我们尝试在WHERE中筛选WINDOW FUNCTION的结果时会出现错误。

注意:数据库使用查询优化器来优化查询语句执行。优化器可能会更改某些操作的顺序,以便查询运行得更快。以上的介绍是正对常见情况下,对SQL执行幕后所发生事情的笼统的概述。

2. WINDOW FUNCTION 是做什么的?

SQL的常见错误有哪些

很多人第一次遇到WINDOW FUNCTION时都觉得它似乎很神秘。为什么使用Window function作为分组可以聚合数据?

Window Function (WF) 通过特定语句简化了许多操作步骤以方便语句运行:

  • WF允许直接访问当前记录前后的数据。参见LEAD和LAG函数。

  • WF可以使用GROUP BY对已经聚合的数据执行额外的聚合。见上图中的示例:使用WF计算移动累计销售额。

  • ROW_NUMBER 可以遍历每一行。还可以用来删除重复的记录。或者取一个随机样本。

  • 顾名思义,WF可以计算给定窗口的统计信息:

SQL的常见错误有哪些

上面的WF计算的就是从第一个记录到当前记录的累计总和。

Window Function值得你去专门花时间学习一下基本原理,不然很可能会把查询语句写得过于复杂以至于程序报错。

3. 利用CASE WHEN 计算平均值

SQL的常见错误有哪些

CASE  WHEN类似于编程语言中的IF条件语句。当我们需要对数据的某个子集计算统计信息时,它的作用就显现出来了。

上面的代码计算了在美国销售的产品的平均价格,但是这段代码有一点小问题,也就是对于Else的编写是有问题的。

在第一个个语句中,这段代码将所有非美国产品价格设为0,这降低了总体平均价格。如果有很多非美国产品,平均价格可能接近于0。

SQL的常见错误有哪些

在第二个例子中,它只计算了在美国销售的产品的平均价格,这才是我需要的结果。请注意在这里使用CASE时不需要包括ELSE,因为它默认为NULL。

SQL的常见错误有哪些

请注意在使用CASE语句时,一定要小心使用“else 0”。它对SUM没有任何影响,但是会对AVG平均计算产生巨大影响。

4. 对存在缺失值的列执行JOIN语句

SQL的常见错误有哪些

SQL中有4种不同的JOIN: Inner,  Outer, Left和Right。当我们在查询中使用JOIN时,它默认为INNER JOIN。

虽然我对JOIN有一些研究学习,但是我还是会犯一些小错误。

如上图所示执行JOIN语句,结果显示许多记录都丢失了。为什么会这样?明明是很简单的JOIN语句。

真是的原因其实是表1和表2中string_field列存在许多NULL值。通常人们会认为JOIN会保留NULL的记录因为NULL等于NULL,难道不是吗?

然后我运行如下语句:

SQL的常见错误有哪些

结果返回的是NULL。

对于这种情况,为了不丢失有NULL的记录,解决方法应该是利用COALESCE,将string_field中的NULL转换为空字符串

SQL的常见错误有哪些

但需要注意的是,这样做会将表1中每个包含NULL的记录与表2中每个包含NULL的记录全部匹配起来。

通过使用ROW_NUMBER() 的 WINDOW FUNCTION,我们可以移除这些重复的匹配:

  • 假设该数据表对每一行都有唯一的标识符“某某某ID”和一个时间戳字段。

  • 只需保留每个标识符的第一行,这样就可以删除重复项。

SQL的常见错误有哪些

5. 对于复杂的查询语句不会使用临时表

SQL的常见错误有哪些

SQL另外一大优点就是能够调试纠错。

我们可以拆分复杂的查询语句并创建多个临时表。然后可以对这些表运行“完整性检查”,以确保它们包含正确的记录。在设计一个全新且重要的查询或报告时,强烈推荐使用这种方法。

SQL的常见错误有哪些

临时表的唯一缺点是数据库中的查询优化器无法优化该查询。

当需要保证执行效率时,可以将创建临时表的语句用with语句重新定义、查询。

SQL的常见错误有哪些

到此,相信大家对“SQL的常见错误有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: SQL的常见错误有哪些

本文链接: https://www.lsjlt.com/news/61933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL的常见错误有哪些
    本篇内容主要讲解“SQL的常见错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL的常见错误有哪些”吧!1. Queries语句的执行顺序SQL的入门...
    99+
    2024-04-02
  • SQL中有哪些常见的错误
    这篇文章给大家介绍SQL中有哪些常见的错误,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1、LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如...
    99+
    2024-04-02
  • SQL的常见错误用法有哪些
    今天小编给大家分享一下SQL的常见错误用法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、LIMIT 语句分页查询是...
    99+
    2023-06-28
  • MySQL中有哪些常见SQL错误
    本篇文章为大家展示了 MySQL中有哪些常见SQL错误,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常见SQL错误用法1. LIMIT 语句分页查询是最常用的场景之...
    99+
    2024-04-02
  • 常见的AngularJS错误有哪些
    这篇文章主要为大家展示了“常见的AngularJS错误有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常见的AngularJS错误有哪些”这篇文章吧。1.在...
    99+
    2024-04-02
  • tomcat常见的错误有哪些
    常见的Tomcat错误包括:1. 404 Not Found:请求的资源未找到。2. 500 Internal Server Err...
    99+
    2023-09-22
    tomcat
  • nodejs常见的错误有哪些
    小编给大家分享一下nodejs常见的错误有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!node的十大常见错误:1、阻塞事件...
    99+
    2024-04-02
  • 常见CSS错误有哪些
    这篇文章将为大家详细讲解有关常见CSS错误有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:区别IE6与FF: background:orange;*background:blue; 区别IE...
    99+
    2023-06-08
  • MySQL常见错误有哪些
    小编给大家分享一下MySQL常见错误有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Can’t connect to M...
    99+
    2024-04-02
  • golang常见错误有哪些
    golang常见错误有:1、空指针引用错误;2、切片越界错误;3、并发竞争;4、垃圾回收性能问题;5、死锁;6、异常处理不当。本教程操作环境:windows10系统、golang1.20.1版本、DELL G3电脑。Golang是一种在近年...
    99+
    2023-07-10
  • JavaScript中常见的错误有哪些
    这篇文章主要讲解了“JavaScript中常见的错误有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中常见的错误有哪些”吧!Java...
    99+
    2024-04-02
  • Python中有哪些常见的错误
    本篇文章为大家展示了Python中有哪些常见的错误,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、忘记在if,for,def,elif,else,class等声明末尾加 :会导致“SyntaxEr...
    99+
    2023-06-16
  • 用promise的常见错误有哪些
    这篇文章主要为大家展示了“用promise的常见错误有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“用promise的常见错误有哪些”这篇文章吧。Promi...
    99+
    2024-04-02
  • 常见的setData操作错误有哪些
    这篇文章主要介绍了常见的setData操作错误有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇常见的setData操作错误有哪些文章都会有所收获,下面我们一起来看看吧。  setData  setData ...
    99+
    2023-06-26
  • 常见HTML5的错误用法有哪些
    这篇文章主要介绍了常见HTML5的错误用法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、使用section作为div的替代品人们在...
    99+
    2024-04-02
  • 常见的JavaScript内存错误有哪些
    本文小编为大家详细介绍“常见的JavaScript内存错误有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“常见的JavaScript内存错误有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,...
    99+
    2024-04-02
  • linux系统常见的错误有哪些
    本篇内容主要讲解“linux系统常见的错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统常见的错误有哪些”吧!一:卸载的时候出现的错误: umount /dev/nb1 de...
    99+
    2023-06-10
  • ipvs编译常见错误有哪些
    小编给大家分享一下ipvs编译常见错误有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ipvs编译常见错误缺少 kernerlsyum instal...
    99+
    2023-06-04
  • MySQL常见错误代码有哪些
    本篇内容介绍了“MySQL常见错误代码有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先给大家看几个实...
    99+
    2024-04-02
  • css样式有哪些常见错误
    这篇文章主要介绍“css样式有哪些常见错误”,在日常操作中,相信很多人在css样式有哪些常见错误问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css样式有哪些常见错误”的疑惑...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作