結合またはサブクエリの長​​所と短所は何ですか?

...

データベースクエリは、データベースから特定の情報を取得します。

サブクエリは、別のクエリ内のクエリです。 サブクエリには、別のサブクエリが含まれる場合もあります。 これらは「ネストされた」サブクエリと呼ばれます。 結合とは、クエリの「From」句で2つ以上のテーブルが参照されている場合です。 データベースエンジンが異なれば、サブクエリと結合も異なる場合があります。 たとえば、DB2のオプティマイザーは、特定の基準が満たされた場合にサブクエリを結合に変換します。 場合によっては、結合によってサブクエリよりもパフォーマンスが向上します。

サブクエリを作成するもの

サブクエリは、外部の「INSERT」、「UPDATE」、「MERGE」、または「DELETE」ステートメントの「WHERE」または「HAVING」句内の「SELECT」ステートメントです。 サブクエリは、「内部クエリ」または「内部選択」とも呼ばれます。 サブクエリには、1つ以上のテーブルを含む「FROM」句を含めることができ、オプションで「WHERE」、「GROUP BY」、または「HAVING」句を含めることができます。 常に括弧で囲まれています。

今日のビデオ

サブクエリの長​​所と短所

サブクエリは、ステートメントの各部分を分離するようにクエリを構成するため、有利です。 通常は複雑な結合と結合を必要とし、より簡単に実行できるのと同じ操作を実行します 読んだ。 サブクエリは、構造が読みやすいため、「StructuredQueryLanguage」(SQL)という名前の基礎にもなりました。 欠点は、同じSQLステートメントのサブクエリ内でテーブルを変更して同じテーブルから選択できないことです。 サブクエリは、データベースオプティマイザがサブクエリを処理する方法が原因で、結合よりも実行に時間がかかる場合があります。

何が参加するのか

ほとんどのサブクエリは結合として書き換えることができ、ほとんどの結合はサブクエリとして書き換えることができます。 結合は、関連する列によって2つ以上のテーブルを定義します。 テーブルは通常、主キーと外部キーで結合されます。 たとえば、従業員テーブルには従業員ID列の主キーがあり、タイムシートテーブルには従業員テーブルの外部キーである従業員ID列もあります。 SQL結合は、「WHERE employee.empid = timesheet.empid」または「FROMemployeeJOIN timesheet ON(employee.empid = timesheet.empid)」と書くことができます。

結合の長所と短所

結合の主な利点は、実行が高速になることです。 パフォーマンスの向上は、エンドユーザーには気付かない場合があります。 ただし、列はデータベースエンジンによって特別に名前が付けられ、インデックスが付けられ、最適化されるため、ほとんどの場合、取得時間はサブクエリよりも高速になります。 内部結合と外部結合、左結合と右結合、完全結合、および相互結合もあります。 結合を使用することの欠点は、サブクエリほど読みにくいことです。 もう1つの欠点は、正しい目的の結果セットを生成するために使用する適切なタイプの結合がどの結合であるかについて混乱する可能性があることです。