【问题标题】:Difference between sql, pl/sql and sqlj [closed]sql、pl/sql 和 sqlj 之间的区别 [关闭]
【发布时间】:2010-04-28 06:57:52
【问题描述】:

我想知道

  • 如何将 3 与 1 进行比较 另一个?
  • 什么时候用哪一个?
  • 可用作替换 其他?

【问题讨论】:

    标签: sql plsql sqlj


    【解决方案1】:
    • SQL -- 用于查询关系数据库的语言的通用名称。 这受各种 ANSI 标准的约束,尽管我知道没有完全实现最新标准的实际 RDBS。有几个实现了大部分 ANSI SQL - 92,这可以被视为 SQL 实现的最低公分母。
    • PL/SQL -- Oracle 特定于 SQL 的扩展,用于编写“存储过程”和“触发器”,它实际上是一种可以本地使用 Oracle SQL 的脚本语言。在 SQLServer 中,TSQL 提供了类似的功能。
    • SQLJ -- Java 标准的一部分,这是一个(很少使用)功能,它允许将 SQL 与 Java 代码内联编码,并在编译时检查 SQL 语法。与 JDBC 相比,JDBC 是一种标准 Java API,它允许 Java 程序在运行时调用 SQL。

    所以 SQL 允许对表进行基本查询和更新,如“SELEC * FROM MY.TABNAME”,PL/SQL 允许对数据库运行更智能的脚本,如“IF DAY = 01 THEN (INSERT (TOTALS) VALUES(%VAL) INTO TOTTAB ) ELSE (更新 TOTTAB 集 TOTALS = TOTALS + %VAL")

    【讨论】:

      【解决方案2】:

      关于您的问题“何时使用哪个”。一些 Oracle 大师推荐:

      1. 首先尝试使用普通 SQL 解决您的问题
      2. 如果用 sql 做不到,那就试试 PL/SQL
      3. 如果您不能在内部使用其他语言,例如 Java,请仅在数据库外部使用。

      当然,您可以将数据库视为数据的转储存储,并在单独的层中执行所有外部业务逻辑。

      【讨论】:

        【解决方案3】:

        如果需求确实是 SQL 需求,那么我会先尝试在 SQL 中实现它。在某些特定情况下,PL/SQL 过程调用可能比纯 SQL 解决方案更快/导致更少的资源争用/等,但在我的经验中这种情况很少见。

        我试图区分“数据库逻辑”和“应用程序逻辑”,虽然我承认它有时可能很模糊,但我非常努力避免在 PL/SQL 中编写应用程序逻辑。原因很简单,它的表达能力远不如 Java,而且除了 SQL 交互之外几乎所有东西的 API 都弱得多。

        我个人不使用 SQLJ,所以我不能帮你,抱歉。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-12-03
          • 2017-01-31
          • 2014-10-14
          • 2020-12-25
          • 1970-01-01
          • 1970-01-01
          • 2014-11-05
          相关资源
          最近更新 更多