0

私は知りたいです

  • 3つは互いにどのように比較されますか?
  • いつ使用するのですか?
  • 他の代わりに使用できるのはどれですか?
4

3 に答える 3

4
  • SQL-リレーショナルデータベースのクエリに使用される言語の総称。これはさまざまなANSI規格に準拠していますが、完全に最新の規格を実装している実際のRDBSはありません。いくつかは、SQL実装の最小公分母と見なすことができるANSISQL-92のほとんどを実装しています。
  • PL/SQL-「STOREDPROCEDURES」および「TRIGGERS」を効果的に作成するために使用されるSQLのOracle固有の拡張。OracleSQLをネイティブに使用できるスクリプト言語。SQLServerでは、TSQLは同様の機能を提供します。
  • SQLJ-Java標準の一部であり、SQLをJavaコードとインラインでコーディングし、SQL構文をコンパイル時にチェックできるようにする(めったに使用されない)機能です。Javaプログラムが実行時にSQLを呼び出すことを可能にする標準のJavaAPIであるJDBCと比較してください。

したがって、SQLでは「SELEC * FROM MY.TABNAME」のようにテーブルの基本的なクエリと更新が可能であり、PL /SQLでは「IFDAY=01 THEN(INSERT(TOTALS)VALUES(%」」のようにデータベースに対してよりインテリジェントなスクリプトを実行できます。 VAL)INTO TOTTAB)ELSE(UPDATE TOTTAB SET TOTALS = TOTALS +%VAL ")

于 2010-04-28T07:16:23.730 に答える
3

「いつどちらを使用するか」という質問について。一部のオラクルの専門家は次のことを推奨しています。

  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 に答える