【问题标题】:How do you proof data from an SQL-Query for completeness and validity?您如何证明来自 SQL 查询的数据的完整性和有效性?
【发布时间】:2015-01-03 20:06:49
【问题描述】:

我正在寻找科学方法来证明 SQL 查询返回的数据的完整性和有效性。

例如,如果我查询满足 3 个定义条件的所有记录,我如何证明该查询确实返回了正确的记录以及所有记录?

数据量太大,无法手动证明。

【问题讨论】:

  • 您只需为正确的数据祈祷。一些单元测试也可能有用(tsqlt.org 是其中之一,但我想还有更多)
  • 为什么这么多人同时标记mysqlsql-server?有人甚至会阅读他们选择的标签的弹出窗口吗?
  • 对此的简单解释,这两个标签是自动添加的。
  • “建议标签”只是算法的建议。您不必接受该建议。选择有意义的标签。

标签: mysql sql-server


【解决方案1】:

为此,您必须使用手动输入的记录在构建的数据库上证明您的查询。您应该包括代表与此查询相关的所有可能案例组合的记录。然后确定针对不同测试用例的查询的预期输出应该是什么,并将它们与实际结果进行比较。

对于 3 个条件,每个条件都可以是 TRUE 或 FALSE,您会得到 2^3 = 8 个可能的结果。如果某些字段可以为 NULL,请确保也测试这些情况。如果您测试 TRUE、FALSE 和 NULL,您可能会得到 3^3 = 27 个测试用例。如果包含更多极端案例,这个数字会迅速增加。

Three-valued logic - Application in SQL,
MySQL Logical Operators,
SQL-Server Nullability and Three-Value Logic比较

理想的情况是您从客户那里获得的规格包括示例。尝试重现这些示例。

【讨论】:

    【解决方案2】:
    SELECT * from table_name 
    WHERE column1 is not NULL 
    AND column2 is not NULL 
    AND column3 is not NULL;
    

    如果上面的查询给出任何结果,那么三列都有完整的值,没有任何空值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2013-12-23
      • 2013-08-09
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多