-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathjoin_exam.sql
More file actions
136 lines (92 loc) · 2.74 KB
/
join_exam.sql
File metadata and controls
136 lines (92 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
-- 20210614
-- JOIN EXAM
-- JOIN 문제 풀이
-- 32. EQUI 조인을 사용하여
-- SCOTT 사원의 부서번호와 부서 이름을 출력하시오.
select d.deptno, d.dname
from emp e, dept d
where e.deptno=d.deptno
and e.ename='SCOTT'
;
-- ansi 이용
select emp.ename, emp.empno, dept.dname
from emp join dept
using (deptno)
where emp.ename='SCOTT'
;
-- 33. INNER JOIN과 ON 연산자를 사용하여
-- 사원 이름과 함께 그 사원이 소속된 부서이름과 지역 명을 출력하시오.
select e.ename, d.dname, d.loc
from emp e inner join dept d
on e.deptno=d.deptno -- 조인의 조건
where e.ename='SCOTT' -- 행을 선택하는 조건
;
-- 36. 조인과 WildCARD를 사용하여 이름에 ‘A’가 포함된 모든 사원의
-- 이름과 부서명을 출력하시오.
select e.ename, d.dname
from emp e, dept d
where e.deptno=d.deptno
and e.ename like '%A%'
;
select e.ename, d.dname
from emp e join dept d
USING (deptno)
where e.ename like '%A%'
;
-- 37. JOIN을 이용하여 NEW YORK에 근무하는 모든 사원의
-- 이름, 업무, 부서번호 및 부서명을 출력하시오.
select e.ename, e.job, e.deptno, d.dname
from emp e, dept d
where e.deptno=d.deptno
and d.loc='NEW YORK'
;
select e.ename, e.job, e.deptno, d.dname
from emp e join dept d
USING (deptno)
where d.loc='NEW YORK'
;
-- 38. SELF JOIN을 사용하여
-- 사원의 이름 및 사원번호, 관리자 이름을 출력하시오.
select e.ename, e.empno, m.ename
from emp e, emp m
where e.mgr=m.empno
;
-- 39. OUTER JOIN, SELF JOIN을 사용하여
-- 관리자가 없는 사원을 포함하여
-- 사원번호를 기준으로 내림차순 정렬하여 출력하시오.
select e.ename, e.empno, m.ename
from emp e, emp m
where e.mgr=m.empno(+)
order by e.empno
;
select e.ename, e.empno, m.ename
from emp e left outer join emp m
on e.mgr=m.empno
order by e.empno
;
-- 40. SELF JOIN을 사용하여 지정한 사원의
-- 지정한 사원과 동일한 부서에서 근무하는 사원 이름, 부서번호을 출력하시오.
-- ( SCOTT )
select ename from emp where deptno=20;
select e.ename, e.deptno, s.ename
from emp e, emp s
where e.ename='SCOTT'
and e.deptno=s.deptno
and s.ename != 'SCOTT'
;
-- 41. SELF JOIN을 사용하여
-- WARD 사원보다 늦게 입사한
-- 사원의 이름과 입사일을 출력하시오.
select *--e.ename, e.hiredate, w.hiredate, w.ename
from emp e, emp w
where w.ename='WARD'
and e.hiredate>w.hiredate
;
-- 42. SELF JOIN 을 사용하여
-- 관리자보다 먼저 입사한
-- 모든 사원의 이름 및 입사일을 관리자의 이름 및 입사일과 함께 출력하시오.
select e.ename, e.hiredate, m.ename, m.hiredate
from emp e, emp m
where e.mgr=m.empno
and e.hiredate < m.hiredate
;