2011-07-14 18 views
7

INSERT/UPDATE/DELETE文を呼び出す方が適切ですか?コマンドまたはクエリ? 「質問」とは、あなたが質問して質問に答えようとしていることを意味する(そして「はい、この操作は正常に実行されました。さらにオプションでここにあなたのインサートIDがあります」 。SQLの命名法:INSERT/UPDATE/DELETEの「クエリ」または「コマンド」?

コミュニケーション専攻であり、特異性を誇る中級レベルのWebアプリケーション開発者からのちょっとした質問です。 :)

+1

まあ、私は赤い持っているほぼすべてのSQLの本があったが、私は順番に私のチームのための抽象クラスを作成するために必要な 'INSERT/UPDATE/DELETE'コマンド – Rahul

+0

語ります作業単位を実装するために、Entity Frameworkを使用したコマンドパターン。私は、抽象クラスに、セットアップの世話をするテンプレートExecuteとsaveChangesを持たせて、命名が重要であることを望みました。私が思いついたこと:AbstractMutateCommand、AbstractUpdateCommand、AbstractWriteCommand。最後のものを選んだ。 –

+0

私は同じことを探しています - 選択/挿入/更新/削除の用語ですが、**はプロシージャコールの**ではありません。私はそれを「声明」と呼ぶと思います。 –

答えて

5

INSERTUPDATEDELETEMERGEの総称は、「更新」である(それは、潜在的に混乱していても - なく、理想 - UPDATEは単に「更新」のサブセットであること)。別の用語は「リレーショナル割り当て」です。

SELECTINSERTUPDATEDELETEMERGE(および他のものはセミコロン)の総称が「声明」として知られています。

厳密に言えば、「クエリ」はステートメントを排除する結果セットを返すSELECTステートメントです。しかし、「照会」という用語を使用して更新を参照すると、非公式ではあるが、残念ながら非常に一般的です。たとえば、「更新クエリ」は矛盾ですが、この正確な用語(site:stackoverflow.com "update query")を使用してこのサイトのGoogle検索を行うと、17,300ヒットが得られます。


UPDATE(しゃれがindended :)

@デビッドマルクス:私はそれのようにMERGE/DELETE/INSERTする を参照するために適切だとあなたの主張に反対する 'アップデート'。それは極端に です。 UPDATEのみが更新です。

元の回答では状況が混乱する可能性があると私は同意しました。私たちはStackoverflowで回答とコメントの書式を設定してキーワードUPDATEを論理的な更新と区別することができます。 (Full Standard SQL-92で要求されるように)大文字でキーワードを書くことも役立ちます。

しかし、一般的なデータベースと科学文献を読むことから、私はあなたに「更新」は確かに正しい集団用語であることを伝えることができます。私は、下記の本のための引用を提供します。

無料のPDFでダウンロードできます(2010)、ヒュー・ダーウィン[「リレーショナルデータベース理論入門」 - グーグルそれ):

を異なる更新オペレーターが期待しますリレーショナルDBMSでは、DELETEUPDATEと呼ばれている であり、チュートリアルD(SQLの場合もある)で使用されている の名前です。28]

キーワードUPDATEが データベースを更新するので、広く ただ一つの特定の演算子の名前として受け入れられるようになったのが残念です。メッセンジャーを撃たないでください! [リレーショナル]割当ては 更新目的のために、理論的には十分であるものの[p.168]

、通常、標的 関係変数の現在の値と新しい値との差を表す簡略 を用いることがより便利です。時には...その違いは、既存のセットに1つまたは複数のタプルを追加することだけです。場合によっては は既存の タプルのいくつかの属性値の一部に変更されるだけです。場合によっては既存の タプルの一部を削除するだけです。これらの3つの特定の例のための略記法は、時間 太古以来、それぞれINSERTUPDATEDELETEと を呼ばれている - つまり、さえ、リレーショナルデータベース の到来前に、しかし当然のことながらその出現以前 更新の目標をファイルではなく、関係変数またはSQLテーブル[p.165]

+0

私は「更新」としてINSERT/DELETE/MERGEを参照するのが適切であるというあなたの主張に同意しません。それは非常に混乱するでしょう。 UPDATEのみが更新です。 –

+0

@David Marx:私の答えの更新を見てください。また、私の 'MERGE'が多様な' MERGE..IF MATCHED THEN UPDATE..'を 'UPDATE'と同様に更新とみなすことができるかどうかを検討してください。 ;) – onedaywhen

0

select以外のものは、DML - Data Manipulation Languageと見なされることがあります。しかし、これは難しくて速い区別ではありません。これは、DMLにselectが頻繁に含まれるのと同じです。

4

疑わしいときは、「ステートメント」と呼んでください。

関連する問題