その理由は次のとおりです。
* 手続き言語 結果を達成するための *方法に焦点を合わせます。それらは、レシピの指示のような一連のステップを伴います。実行する正確な操作の順序を指定します。
* 宣言言語 それを手に入れる方法ではなく、あなたが望む * *に焦点を合わせてください。彼らは望ましい結果を説明し、システムはそれを達成するための最良の方法を理解しています。
sqlのようなクエリ言語は、のために宣言的です
*必要なデータを指定します(たとえば、「給与> $ 50,000のすべての従業員を選択してください」)。
*データベースにそのデータを見つける方法を伝えません。データベースエンジンは、クエリを実行する最も効率的な方法を把握しています。
このように考えてみてください:
* 手続き: 「キッチンに行く。冷蔵庫を開けてください。牛乳のボトルを取り出してください。グラスに注ぎます。飲んでください。」
* 宣言: 「牛乳を一杯欲しい。」
ただし、:
クエリ言語には、手続き上と見なすことができるいくつかの側面があります。
* 操作の順序: 参加のような一部のSQLコマンドは、異なる注文で使用でき、結果に影響します。
* 関数: 関数にはロジックを含めることができますが、これは手続き上と見なすことができます。
一般的に:
クエリ言語は主に宣言的ですが、手続き的要素を持つことができます。焦点は、それを取得する方法ではなく、あなたが望むものを指定することにあります。
