Oracle SQL Bronze web問題集【表と結合】
Sal
sql oracleマスターbronzeのweb問題集です。NATURAL JOINやUSINGを使用した結合から、表の表別名についての性質などを解説します。

Oracle SQL Bronze web問題集【表と結合】

  1. 結合
  2. 結合に対する条件
  3. 結合条件がない時
  4. JOIN ON 句
  5. natural joinについて
  6. 外部結合
  7. 結合と列別名
  8. 表別名についてのメモ
## 結合
4つの表を結合するために必要な条件はいくつか A: 定まらない B: 4つ C: 3つ D: 一つ

答え

B: 4つ

一つのテーブルに対して、他の3つのテーブルの結合方法をそれぞれ提示するので答えは3つ

## 結合に対する条件
結合に関する説明を全て選べ A: 結合条件は等価条件以外にも設定できる。 B: 結合する表の数は上限がある C: 同じ表を結合することもできる D: where句を必ず使う必要がある

答え

A: 結合条件は等価条件以外にも設定できる。

C: 同じ表を結合することもできる

## 結合条件がない時
次のクエリの実行結果を選べ

select
item_name,region
from
    items,regions
A: デカルト積が適応される B: エラーになる C: 等しいデータ方を見つけて自動的に結合する

答え

A: デカルト積が適応される

CROSS JOIN テーブル名 ONと同じ共同をします

## JOIN ON 句
次のSQLでエラーとなる原因を選べ

select
    a.student_name,
    c.class_id
from
    students a
join 
    classes c
on
    classes.class_id = students.class_id
order by 1;
A: select句 B: from句 C: JOIN句 D: on句 E: order by句

答え

D: on句

fromとjoinで宣言した表名には表別名が使われています。

from句で宣言した表別名でなければカラムめいにアクセスすることはできません。

## natural joinについて
natural joinについて正しい選択を選べ A: natural joinは存在しない B: natural joinではwhere句で条件を指定する必要がある C: natural joinではon句で条件を指定する必要がある D: natural joinでは結合条件を指定してやる必要がない E: natural joinを用いる際は.を使ったカラム名へのアクセスができない。

答え

D: natural joinでは結合条件を指定してやる必要がない

 

E: natural joinを用いる際は.を使ったカラム名へのアクセスができない。

natural joinは同じ列名を結合条件に使います。

その際に、「表名.列名」という指定はできません。

## 外部結合
employees表の社員を全て表示し、その部署コードを見てdepartments表をつけるSQLはどれか A: select name, sale from employees left outer join departments d B: select name, sale from employees right outer join departments d C: select name, sale from employees e left outer join departments d on e.deptid = d.id D: select name, sale from employees e right outer join departments d on e.deptid = d.id

答え

C: select name, sale from employees e left outer join departments d on e.deptid = d.id

 

leftかrightかで全て表示される方のテーブルを指定することができます。

## 結合と列別名
次のsqlがエラーになる句を選べ。 ただし、employeesにはempno,ename,jobが departmentsにはdeptno,dname,locが存在する。

select
    e.empno, e.name,e.job, d.name
from
    employees e
join
    departments d
on
    e.deptno = d.deptno
where
    job = '営業'
order by
    deptno;
A: select B: from C: join D: on E: where F: order by

答え

F: order by

natural joinやusingなどプログラムが暗黙的に選択する場合は表名.列名を使えないが

 

ON句を使用する結合で同じ列名が存在する場合、表名.列名を使う必要がある

## 表別名についてのメモ
FROMで表別名を宣言した場合は、「「必ず使わなければならない」」(元々の表名は無効になる)

答え

 

答え

 

答え

 

title:Oracle SQL Bronze web問題集【表と結合】 description:oracleマスターbronzeのweb問題集です。NATURAL JOINやUSINGを使用した結合から、表の表別名についての性質などを解説します。 img:https://s3-ap-northeast-1.amazonaws.com/i.schoo/images/class/600x260/3456.jpg category_script:page_name.startswith("50")