Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronzeの取得を目指すITエンジニアは多い。本連載で間違いやすいポイントを確認し、合格に近づこう!
前回「グループ関数を使用したデータの集計」では、グループ関数の特徴、GROUP BY句とHAVING句の記述方法などについて学習しました。
今回は、以下の項目を確認します。
■例題1
次の結果と同じ結果となるSQL文を選択してください。
SQL> select ename,deptname from emp cross join dept; ENAME DEPTNAME -------------------- ------------------ JONES Administration JONES Marketing JONES Shipping ・ ・ ・ 160行が選択されました。
a.select ename,deptname from emp natural join dept;
b.select e.ename,d.deptname from emp e,dept d
where e.deptno=d.deptno;
c.select ename,deptname from emp,dept;
d.select e.ename,d.deptname from emp e left outer join dept d
on e.deptno=d.deptno;
■例題の範囲をおさらい
参考:「SQLで複数の表からデータを取り出す」
SELECT文で結合を使用すると、1つまたは複数の表をリンクさせ、1つの結果として戻すことができます。
問題文で使用している結合はクロス結合と呼ばれ、 2つの表のすべての組み合わせを作成するものです。
■正解
c
■解説
選択肢a:この文で使用している結合は自然結合で、結果はクロス結合とは異なります。
ENAME DEPTNAME -------------------- ------------------------------------ Pat Marketing William Accounting Neena Executive Lex Executive Jonathon Sales ・ ・ ・ 12行が選択されました。
選択肢b:この文で使用している結合は等価結合で、結果はクロス結合とは異なります。
SQL> select e.ename,d.deptname from emp e,dept d 2 where e.deptno=d.deptno; ENAME DEPTNAME -------------------- ---------------------------------------- Jennifer Administration Michael Marketing Pat Marketing Shelley Accounting William Accounting Steven Executive ・ ・ ・ 19行が選択されました。
選択肢c:この文で使用している結合は直積演算で、クロス結合と同じ結果を戻すことができます。
SQL> select ename,deptname from emp,dept; ENAME DEPTNAME -------------------- -------------------------------- Jennifer Administration Michael Administration Pat Administration Shelley Administration William Administration Steven Administration Neena Administration Lex Administration Alexander Administration Bruce Administration ・ ・ ・ 160行が選択されました。
選択肢d:この文で使用している結合は左側外部結合で、結果はクロス結合とは異なります。
SQL> select e.ename,d.deptname from emp e left outer join dept d 2 on e.deptno=d.deptno; ENAME DEPTNAME -------------------- ------------------------------------------------ Jennifer Administration Pat Marketing Michael Marketing Peter Shipping Randall Shipping Curtis Shipping ・ ・ ・ 20行が選択されました。
Copyright © ITmedia, Inc. All Rights Reserved.