0

我想知道

  • 3 相互比较如何?
  • 什么时候用?
  • 哪个可以代替其他的?
4

3 回答 3

4
  • SQL——用于查询关系数据库的语言的通用名称。这受各种 ANSI 标准的约束,尽管我知道没有完全实现最新标准的实际 RDBS。几个实现了大部分的 ANSI SQL - 92,这可以被认为是 SQL 实现的最低公分母。
  • PL/SQL——Oracle 特定的 SQL 扩展,用于编写“STORED PROCEDURES”和“TRIGGERS”,它有效地是一种可以本地使用 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")

于 2010-04-28T07:16:23.730 回答
3

关于您的问题“何时使用哪个”。一些 Oracle 专家建议:

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

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

于 2010-04-28T07:28:28.660 回答
1

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

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

我个人不使用 SQLJ,所以我不能帮助你,对不起。

于 2010-04-28T15:14:11.007 回答