SQL中常见的6个报错
本篇講講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中出現,要么在聚合函數中出現。比如如下代碼:
select?col1,sum(col2) fromtable select?col1,col2,sum(col3) fromtable group?bycol1上面兩種代碼都可能會報xxx字段沒有在group by中的錯,為啥是可能呢,因為mysql 8.0以上版本是不會報錯,默認只展示第一個值。但是其他版本數據庫會報錯。
尤其第二段代碼的書寫方式我們需要注意,當select中有多列時,經常會在group by后面漏寫某個字段,導致報錯。
4 權限錯誤
在公司里面我們要對數據查詢時,首先需要申請權限。如果你沒有對某個字段或某張表的查詢權限時,通過會報類似于You have no privilege xxx的錯,不同公司的報錯提醒可能不太一樣,你只需要抓重點no privilege即可。
5 逗號錯誤
select后面的多個字段之間要用逗號分隔開來,且只能有一個。最后一個字段與from之間不可以有逗號。有的時候要么會多寫逗號,要么會漏寫,都會導致程序報錯。根據程序報錯的位置仔細檢查即可。
selectcol1,col2,col3, fromtable上面代碼的書寫方式就是最后一個字段和from之間有逗號,這是不對的。
selectcol1,col2,,col3 fromtable上面代碼的書寫方式就是col2列后面有兩個逗號,也會導致報錯。
selectcol1,col2col3 fromtable上面代碼的書寫方式就是col2與col3列之間沒有逗號分隔,也會導致報錯。
當列名與列名之間的逗號放在列名之后時,很容易被我們忽視,忽視就會導致程序報錯。這也就是為什么建議大家把列與列之間的逗號要放在列名前,而不是放在列名后,可以減少代碼錯誤率。
6 括號錯誤
代碼中的括號都是成對出現的,沒有成對出現的括號都是會報錯的。如果是只有一對括號時是不容易出錯的,當有多層括號嵌套時,最容易少寫一個或多寫一個,根據報錯定位的位置仔細檢查即可。
selectcol1,if(col2<60,"不及格",if(col2<80,"良好","優秀") fromtable上面代碼中if嵌套少一個括號,就會導致報錯。
我在這里列舉的報錯是我平常遇到的以及同學們問的比較多的一些報錯,但肯定不是全部。報錯會因為每個人的電腦文件以及電腦設置不同而報不同錯誤,所以報錯是無法窮盡的,所以大家需要培養的解決報錯的能力,那就是搜索。你遇到的問題,有很大的可能別人也遇到過,且會有一些樂于分享的人把解決答案分享出來。當你遇到報錯時,直接去網上搜索這個報錯即可,你總能找到解決方案。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的SQL中常见的6个报错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新研究:2035年元宇宙将占到美国GDP
- 下一篇: 马斯克再次杠上扎克伯克:WhatsApp