web-dev-qa-db-ja.com

SQLのステートメントとクエリの違い

私はまだこのあいまいさに住んでいます。概念的には、SQLのstatementqueryの違いは何ですか?誰かがそれぞれの定義を与えることはできますか?これは、たとえば、プログラム内の変数名を誰でもわかりやすい方法で選択する場合に役立ちます。ありがとう!

ADDITIONALLY:複数のステートメントで作成されたSQLコードのチャンクを、ステートメントをセミコロン(;)で区切って呼び出すにはどうすればよいですか?すでに返信した人は、自分の回答を編集できます。どうもありがとう!

35
bluish

ステートメントは、データベースエンジンが有効なコマンドとして認識する任意のテキストです。 SQL-92現在:

SQLステートメントは、この国際標準で指定されているフォーマットおよび構文規則に準拠する文字列です。

queryは、レコードセット(おそらく空)を返すステートメントです。

ステートメントがセミコロン(;)で区切られている複数のステートメントで作成されたSQLコードのチャンクを呼び出すにはどうすればよいですか?すでに返信した人は、自分の回答を編集できます。どうもありがとう!

一度にサーバーに送信される一連のSQLステートメントはbatchと呼ばれます。

すべてのSQLエンジンがバッチ内のステートメントをセミコロンで区切る必要があるわけではありません。たとえば、SQL Serverは通常、コンテキストに基づいてステートメントを実行せず、ブレークします。 CTEで始まるWITHステートメントは、注目に値する例外です。

32
Quassnoi

ステートメントは、SELECT、INSERT、UPDATE、DELETEなどのSQLコマンドです。

queryは、SELECTステートメントの同義語です。

16
Tony Andrews

ウィキペディアから-SQL言語要素

SQL言語は、次のようないくつかの言語要素に細分されます。

  • Clauses。ステートメントとクエリの構成要素です。 (場合によっては、これらはオプションです。)[9]
  • Expressions。これは、データの列と行で構成されるスカラー値またはテーブルを生成できます。
  • Predicates。SQLの3値論理(3VL)またはブール(true/false/unknown)の真理値に評価できる条件を指定し、その影響を制限するために使用されます。ステートメントとクエリ、またはプログラムフローを変更します。
  • クエリ、特定の基準に基づいてデータを取得します。
  • Statements、スキーマとデータに永続的な影響を与える可能性がある、またはトランザクション、プログラムを制御する可能性があるフロー、接続、セッション、または診断。
    • SQLステートメントには、セミコロン( ";")ステートメント終了文字も含まれます。すべてのプラットフォームで必要なわけではありませんが、SQL文法の標準部分として定義されています。
  • 重要ではない空白は、SQLステートメントとクエリでは一般的に無視されるため、SQLコードを読みやすくフォーマットするのが簡単になります。
11
MicSim

ステートメントは、DBMSに送信できる完全で正しいSQLの一部を表す一般的な用語です。 queryはデータを返すステートメントであるため、クエリは特別な種類のステートメントです。

A SELECT ...はクエリ、DELETE...ただのステートメント。

5
sleske

ほとんどの場合、これらは同じ意味で使用されていますが、特に「SELECT」ステートメントを意味するために「クエリ」という単語を使用することがよくあります。なぜなら、query。また、SELECTクエリは結果セットを返すため、説明にうまく適合します。これは、SELECTステートメントが正式にDQL(データクエリ言語)ステートメントと呼ばれていることからも明らかです。

1
BoltClock

クエリは特定の基準に基づいてデータを取得するために使用されますが、ステートメントはスキーマとデータに永続的な影響を与えるか、トランザクション、プログラムフロー、接続、セッション、または診断を制御する可能性があります。 Wikipedia も参照してください。

0
NAYAN RAMI