前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL中常见的6个报错

SQL中常见的6个报错

作者头像
张俊红
发布2024-05-29 14:42:50
2670
发布2024-05-29 14:42:50
举报
文章被收录于专栏:张俊红

本篇讲讲SQL中常见的一些报错,内容节选自《对比Excel,轻松学习SQL数据分析》一书。

1 表名错误

如果数据库中没有某张表,或者你在写代码的时候把表名写错了,都会导致程序找不到这张表,最后报错:Table 'XXX' doesn't exist。如果遇到这个报错时,去检查XXX表名是否写正确,然后再去检查数据库中是否有这张表。

2 列名错误

如果某张表中不存在某个字段,或者你把字段名写错了,都会导致程序找不到这个字段,最后报错:Unknown column 'XX' in 'field list'。如果遇到这个报错时,去检查XX列名是否写正确,然后再去检查这张表中是否有这个字段。

3 group by错误

Expression not in GROUP BY key 'xxx',如果你遇到这个报错,可能是select语句中的xxx字段没有在group by子句中出现导致的。如果有group by语句,select后面的字段要么在group by中出现,要么在聚合函数中出现。比如如下代码:

代码语言:javascript
复制
select 
    col1
    ,sum(col2)
from
    table
代码语言:javascript
复制
select 
    col1
    ,col2
    ,sum(col3)
from
    table
group by
    col1

上面两种代码都可能会报xxx字段没有在group by中的错,为啥是可能呢,因为mysql 8.0以上版本是不会报错,默认只展示第一个值。但是其他版本数据库会报错。

尤其第二段代码的书写方式我们需要注意,当select中有多列时,经常会在group by后面漏写某个字段,导致报错。

4 权限错误

在公司里面我们要对数据查询时,首先需要申请权限。如果你没有对某个字段或某张表的查询权限时,通过会报类似于You have no privilege xxx的错,不同公司的报错提醒可能不太一样,你只需要抓重点no privilege即可。

5 逗号错误

select后面的多个字段之间要用逗号分隔开来,且只能有一个。最后一个字段与from之间不可以有逗号。有的时候要么会多写逗号,要么会漏写,都会导致程序报错。根据程序报错的位置仔细检查即可。

代码语言:javascript
复制
select
    col1,
    col2,
    col3,
from
    table

上面代码的书写方式就是最后一个字段和from之间有逗号,这是不对的。

代码语言:javascript
复制
select
    col1,
    col2,,
    col3
from
    table

上面代码的书写方式就是col2列后面有两个逗号,也会导致报错。

代码语言:javascript
复制
select
    col1,
    col2
    col3
from
    table

上面代码的书写方式就是col2与col3列之间没有逗号分隔,也会导致报错。

当列名与列名之间的逗号放在列名之后时,很容易被我们忽视,忽视就会导致程序报错。这也就是为什么建议大家把列与列之间的逗号要放在列名前,而不是放在列名后,可以减少代码错误率。

6 括号错误

代码中的括号都是成对出现的,没有成对出现的括号都是会报错的。如果是只有一对括号时是不容易出错的,当有多层括号嵌套时,最容易少写一个或多写一个,根据报错定位的位置仔细检查即可。

代码语言:javascript
复制
select
    col1
    ,if(col2<60,"不及格",if(col2<80,"良好","优秀")
from
    table

上面代码中if嵌套少一个括号,就会导致报错。

我在这里列举的报错是我平常遇到的以及同学们问的比较多的一些报错,但肯定不是全部。报错会因为每个人的电脑文件以及电脑设置不同而报不同错误,所以报错是无法穷尽的,所以大家需要培养的解决报错的能力,那就是搜索。你遇到的问题,有很大的可能别人也遇到过,且会有一些乐于分享的人把解决答案分享出来。当你遇到报错时,直接去网上搜索这个报错即可,你总能找到解决方案。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 表名错误
  • 2 列名错误
  • 3 group by错误
  • 4 权限错误
  • 5 逗号错误
    • 6 括号错误
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档