助け合いフォーラム
Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26496
問題を開く
表の結合について、正しいものはどれですか(該当するものを全て選択して下さい)。
正解
表接頭辞を使用するとパフォーマンスが向上する
結合条件にBETWEEN演算子を使用することができる
解説
表の結合を行う際に、表接頭辞として「表名」または「表別名」を指定すると、メモリの使用量が節約でき、パフォーマンスの向上につながります。ただし、同じ表の表接頭辞として「表名」と「表別名」を混在することはできません。
また、結合条件にBETWEEN句を指定して結合することができます(等号(=)以外の演算子を使用した結合を「非等価結合」といいます)。
以上より、
・表接頭辞を使用するとパフォーマンスが向上する
・結合条件にBETWEEN演算子を使用することができる
が正解となります。
その他の選択肢については次のとおりです。
・3つ以上の表は結合できない
3つ以上の表も結合することができます。
・必ず他の表と結合する
同じ表を2つの表に見立てて結合することもできます(自己結合といいます)。
・1つのSQL文で、同一の表に対する表接頭辞として表名と表別名を混在して記述できる
表別名を定義した表に対し、元の表名を表接頭辞として指定することはできません。
また、結合条件にBETWEEN句を指定して結合することができます(等号(=)以外の演算子を使用した結合を「非等価結合」といいます)。
以上より、
・表接頭辞を使用するとパフォーマンスが向上する
・結合条件にBETWEEN演算子を使用することができる
が正解となります。
その他の選択肢については次のとおりです。
・3つ以上の表は結合できない
3つ以上の表も結合することができます。
・必ず他の表と結合する
同じ表を2つの表に見立てて結合することもできます(自己結合といいます)。
・1つのSQL文で、同一の表に対する表接頭辞として表名と表別名を混在して記述できる
表別名を定義した表に対し、元の表名を表接頭辞として指定することはできません。
参考
Oracle Databaseでは、複数の表を関連付けデータを取り出すことができます。複数の表を関連付けることを表の結合といいます。
Oracle Databaseではいろいろな方法で表を結合することができます。主な結合方法は次の通りです。(ANSI SQL:1999準拠の結合構文)
表の結合時、結合するそれぞれの表に同じ名前の列がある場合は、どの表の列であるかを明確にするために、列名に表接頭辞を指定しなければなりません。
表接頭辞には表名、または表別名を使用することができます。
ただし、同じ表に対する表接頭辞として、表名と表別名を混在して記述することはできません。表に表別名を定義した場合、表接頭辞には表別名を使用します。
Oracle Databaseではいろいろな方法で表を結合することができます。主な結合方法は次の通りです。(ANSI SQL:1999準拠の結合構文)
表の結合時、結合するそれぞれの表に同じ名前の列がある場合は、どの表の列であるかを明確にするために、列名に表接頭辞を指定しなければなりません。
表接頭辞には表名、または表別名を使用することができます。
SQLを表示
SELECT department_name, employee_name
FROM departments JOIN employees
ON departments.department_id = employees.department_id;
FROM departments JOIN employees
ON departments.department_id = employees.department_id;
SQLを表示
SELECT department_name, employee_name
FROM departments dept JOIN employees emp
ON dept.department_id = emp.department_id;
FROM departments dept JOIN employees emp
ON dept.department_id = emp.department_id;
ただし、同じ表に対する表接頭辞として、表名と表別名を混在して記述することはできません。表に表別名を定義した場合、表接頭辞には表別名を使用します。
SQLを表示
SELECT department_name, employee_name
FROM departments dept JOIN employees emp
ON departments.department_id = emp.department_id;
FROM departments dept JOIN employees emp
ON departments.department_id = emp.department_id;
JOIN句の表接頭辞について
M
Mottchan
投稿日 2023/01/27
解説:
表の結合を行う際に、表接頭辞として「表名」または「表別名」を指定すると、メモリの使用量が節約でき、パフォーマンスの向上につながります。
ただし、同じ表の表接頭辞として「表名」と「表別名」を混在することはできません。
「表名」と「表別名」を混在している状況ってどのようなコードでしょうか。
ON e.emp = job みたいなことでしょうか。
この投稿に対して返信しませんか?
M Mottchan
2023/02/01 12:36
こういう状況があるか分からないですが、 SELECT employee.id, emp.department_id FROM employee emp JOIN ... 上記の状態だと思うことにしました。