gpt4 book ai didi

sql - 在SQL语句中使用Shell脚本的优缺点

转载 作者:行者123 更新时间:2023-12-02 04:41:05 25 4
gpt4 key购买 nike

在bash脚本中编写静态sql语句是否被视为不良做法?您能详细说明为什么吗?

抱歉,这不是一个具体的编程问题,但我想确定在编写脚本之前。

提前致谢。

最佳答案

我假设您正在谈论将SQL馈送至mysql命令行的事情。

与使用任何其他编程语言相比,硬编码SQL与使用SQL抽象层都将遇到相同的问题。

  • SQL可能特定于一种类型的数据库(即MySQL或Postgres或MSSQL)。
  • 很难适应模式更改。
  • 很难重用和修改存储在字符串中的SQL,从而导致更多代码。
  • 例如:尝试向SELECT foo FROM bar LIMIT 10添加订单或另一列

  • 再加上一些使用可执行文件而不是数据库库的独特功能。
  • 您必须解析输出。这可能会导致错误和安全漏洞。
  • 每个查询都会带来额外的开销...
  • 必须为每个查询建立一个新的连接。
  • 每个查询都必须派生并执行一个新程序。
  • 无法进行客户端级查询缓存(但服务器可以)。
  • 语句句柄无法缓存。
  • 必须格式化输出。
  • 输出将必须通过I / O的其他层。
  • 不能使用Bind参数使它更容易受到SQL injection attacks的攻击。
  • 错误检查将更加困难,您必须分析错误语句。

  • 有多种方法可以缓解这种情况,可以批处理查询,也可以编写一个绑定(bind)参数的SQL查询程序,但这是炮轰运行查询的常见问题。通常,您应该考虑使用带有可靠SQL抽象库的编程语言。大多数编程语言都有一种。

    关于sql - 在SQL语句中使用Shell脚本的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37560051/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com