본문 바로가기

database/oracle

oracle quiz

 

JOIN

SELECT 칼럼명1,칼럼명2...

FROM 테이블명1, 테이블명2...

WHERE JOIN 조건 AND 다른 조건 ...

 

 

1. emp 테이블과 dept 테이블을 조인하여 부서번호,부서명,이름,급여 를 출력해 보세요!

 

SQL>SELECT e.deptno, d.dname, e.ename, e.sal

FROM emp e, dept d

WHERE e.deptno = d.deptno;

 

SQL>SELECT DEPTNO, DNAME, ENAME,SAL

FROM emp

INNER JOIN dept USING(deptno);

 

 

2. 사원의 이름이 'ALLEN' 인 사원의 부서명을 출력해보세요.

 

SQL>SELECT e.ename, d.dname

FROM emp e, dept d

WHERE e.deptno = d.deptno

AND e.ename = 'ALLEN' ;

 

SQL> SELECT dname

FROM emp, dept

WHERE emp.deptno=dept.deptno

AND ENAME='ALLEN';

 

SQL>SELECT dname

FROM emp

INNER JOIN dept USING(deptno)

WHERE ename= 'ALLEN';

 

3. 모든 사원의 이름, 부서번호, 부서명, 급여를 출력하세요. 단, emp 테이블에 없는 부서도 출력해보세요.

 

SQL>SELECT e.ename, e.deptno, d.dname, e.sal

FROM emp e, dept d

WHERE e.deptno(+) = d.deptno ;

 

SQL>SELECT ename, emp.deptno, dname, sal

FROM emp, dept

WHERE emp.deptno(+) = dept. deptno;

 

SQL>SELECT ename, deptno, dname, sal

FROM emp

RIGHT OUTER JOIN dept USING(deptno);

 

4. 다음과 같이 모든 사원의 매니저를 출력해보세요.

SMITH 의 매니저는 FORD 입니다. ??? 의 매니저는 ??? 입니다. .

 

SQL>SELECT e1.ename || ' 의 매니저는 ' || e2.ename || ' 입니다'

FROM emp e1,emp e2

WHERE e1.mgr = e2.empno ; 

 

SQL>SELECT e1.ename || ' 의 매니저는 ' || e2.ename || ' 입니다' AS INFO

FROM emp e1,emp e2

WHERE e1.mgr = e2.empno ; 

 

SQL>SELECT e1.ename || ' 의 매니저는 ' || e2.ename || ' 입니다' AS INFO

FROM emp e1

INNER JOIN emp e2 ON e1.mgr=e2.empno;

 

5. 사원의 이름과 급여, 급여의 등급을 출력해 보세요

 

SQL>SELECT ename, sal, grade

FROM emp, salgrade

WHERE sal BETWEEN losal

AND hisal;

 

SQL>SELECT ename, sal, grade

FROM emp

JOIN salgrade ON sal BETWEEN losal AND hisal;

 

 

 

6.사원의 이름과, 부서명, 급여의 등급을 출력해 보세요

 

SQL>SELECT e.ename, d.dname, s.grade

FROM emp e, dept d, salgrade s

WHERE e.deptno = d.deptno

AND e.sal BETWEEN s.losal  AND s.hisal;

 

SQL>SELECT ename, dname, grade

FROM emp

INNER JOIN dept USING(deptno)

INNER JOIN salgrade ON sal BETWEEN losal AND hisal;

 

inner는 생략가능하다