首页 > 数据库 >MariaDB 中常见的 SQL 错误

MariaDB 中常见的 SQL 错误

时间:2023-06-21 22:32:26浏览次数:47  
标签:count 错误 sec SQL test MariaDB select row

常见的SQL错误有以下几种:

  • 表名错误:如果数据库中没有该表,或代码中将表名写错,都会导致程序找不到该表。
  • 列名错误:如果某张表中不存在该字段,或代码中将字段名写错,都会导致程序找不到该字段。
  • group by错误:可能是select语句中的字段没有在group by子句中出现。
  • 权限错误:在公司里面我们要对数据查询时,首先需要申请权限。
  • 逗号错误:select后面的多个字段之间要用逗号分隔开来,且只能有一个。最后一个字段与from之间不可以有逗号。
  • 括号错误:代码中的括号都是成对出现的,没有成对出现的括号都会报错。

下面列举几个在MariaDB中的错误。

本文使用的是 MariaDB 10.11.3 版本。

  1. 除以整数得整数
MariaDB [test]> select 1/3 value from dual;
+--------+
| value  |
+--------+
| 0.3333 |
+--------+
1 row in set (0.000 sec)
  1. 除数为0
MariaDB [test]> select 2/0 as value;
+-------+
| value |
+-------+
|  NULL |
+-------+
1 row in set, 1 warning (0.000 sec)

MariaDB [test]> show warnings;
+---------+------+---------------+
| Level   | Code | Message       |
+---------+------+---------------+
| Warning | 1365 | Division by 0 |
+---------+------+---------------+
1 row in set (0.000 sec)
  1. count可为null列

使用 count 时,需要确认列中是否存在 null, 否则结果会出现不一致的情况。

MariaDB [test]> insert t1 select 3,null;
Query OK, 1 row affected (0.004 sec)
Records: 1  Duplicates: 0  Warnings: 0

MariaDB [test]> select count(b), count(*) from t1;
+----------+----------+
| count(b) | count(*) |
+----------+----------+
|        5 |        6 |
+----------+----------+
1 row in set (0.001 sec)
  1. 字符串拼接

在 MariaDB 中为 null。

MariaDB [test]> select 'char'||null newv from dual;
+------+
| newv |
+------+
| NULL |
+------+
1 row in set, 2 warnings (0.000 sec)

MariaDB [test]> show warnings;
+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'char' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'char' |
+---------+------+------------------------------------------+
2 rows in set (0.000 sec)

标签:count,错误,sec,SQL,test,MariaDB,select,row
From: https://blog.51cto.com/u_15081581/6532352

相关文章

  • MySQL约束
    1约束1.1约束分类NOTNULL:非空,用于保证该字段的值不能为空。比如姓名、学号等。DEFAULT:默认,用于保证该字段有默认值,比如性别。PRIMARYKEY:主键,用于保证该字段的值具有唯一性,并且非空。比如学号、员工编号等。UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。比如座位号。......
  • mysql - #1067 - Invalid default value
    mysql中无法设置默认值为函数或者表达式,如果你强制设置时,就会报错误:#1067-Invaliddefaultvalue。这不是mysql的bug,而是故意这么设计的。参看:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html这里写道:"TheDEFAULTvalueclauseinadatatypespecification......
  • SQL Server 数据格式修改时,没有保存按钮的情况解决
    如果你使用的是SQLServer2008,当你修改数据结构后,保存时会报下图情况:Savingchangesisnotpermitted.Thechangesyouhavemaderequirethefollowingtablestobedroppedandre-created.Youhaveeithermadechangestoatablethatcan'tbere-createdorenabled......
  • 书写SQL时也获得智能提示
    写SQL的比写.NET程序的体验上差一等,没有智能提示,需要记住关键字,函数或者不断地Copy表字段名,自定义函数,存储过程之类的。不过在VS2010中,我们可以使用智能提示了,如下面几幅图所示:在编辑器中,输入Shift+J(提示:VS2010开发工具中标的是Ctrl+J其实应该是Shift+J)就可以自动打......
  • 备份 mysql数据
    Mysql数据库的常用备份方法是使用使用mysqldump,其命令格式如下:#mysqldump[options]database[tables]其中参数的含义为:options:代表mysqldump的选项,通过mysqldump–help可以查到。database:代表将要备份的数据库tables:代表将要备份的表,如果不指定任何表,则备份整个数据库......
  • 【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection ref
    问题描述在PHP应用中,连接Redis的方法报错  RedisException(code:0):Connectionrefusedat/data/Redis/Connectors/PhpRedisConnector.phpproduction.ERROR:Connectionrefused{"exception":"[object](RedisException(code:0):Connectionrefusedat/data/Redis/Con......
  • ChatGPT常回答错误的几类问题
    下面几类问题,是ChatGPT常回答错误的。复杂的数学和科学问题GPT是一种基于统计模型的语言模型,它并不具备理解数学和科学概念的能力。因此,当问题涉及到深层次的数学和科学知识时,GPT可能会无法理解问题的本质,从而导致给出不确定或错误的答案。“MathPrompter:MathematicalReasoning......
  • 【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection ref
    问题描述在PHP应用中,连接Redis的方法报错  RedisException(code:0):Connectionrefusedat/data/Redis/Connectors/PhpRedisConnector.phpproduction.ERROR:Connectionrefused{"exception":"[object](RedisException(code:0):Connectionrefusedat/data/Redis/......
  • SQL基础命令练习
     1.创建一个名为`mydb`的数据库2.在`mydb`数据库中创建一个名为`users`的表,包含以下字段:`id`(主键,自增长),`name`(字符串,非空),`age`(整数),`gender`(字符串)3.向`users`表中插入一条记录,姓名为`Tom`,年龄为`25`,性别为`男`4.查询`users`表中所有记录5.将`users`表......
  • 基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步
    这篇教程将展示如何基于FlinkCDC快速构建MySQL到Databend的实时数据同步。本教程的演示都将在FlinkSQLCLI中进行,只涉及SQL,无需一行Java/Scala代码,也无需安装IDE。假设我们有电子商务业务,商品的数据存储在MySQL,我们需要实时把它同步到Databend中。接下来的内......