일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java Fish
- sqld trigger
- java spider
- sqld deny
- SQLD 옵티마이저
- Java 메소드
- SQL
- java 논리연산자
- SQLD 자격시험 개념정리
- java
- sqld remame
- java 단축키
- sqld 자격증
- SQLD 특강
- SQLD 핵심포인트
- JAVA 연산자
- sqld 옵티마이져
- JAVA for문
- java 함수
- sqld grant
- PLSQL
- java 성별
- sqld revoke
- java 상속
- java 로또
- java Animal
- java string
- Java Cat
- java 구구단
- JAVA 제어문
- Today
- Total
SQLD, ECLIPS, JAVA,PYTHON, NODE....
[Oracle] SQL Class 8 - Join 실습예제 본문
JOIN의 실습예제(SCOTT)
1. EMP 테이블과 DEPT 테이블을 CARTESIAN PRODUCT로 사원번호,이름,업무,부서번호,부서명,근무지를 출력하라.
select empno,ename,job,DEPT.DEPTNO,DEPT.DNAME,DEPT.LOC from emp cross join dept;
2. EMP 테이블에서 사원번호, 이름 ,업무, 부서번호,부서명,근무지 출력하라. 단, 사원이 없는 부서의 부서번호도 출력하라.
select empno,ename,job,d.deptno,d.dname,d.loc from emp e,dept d
where e.deptno(+)=D.DEPTNO;
3. SALESMAN의 사원번호,이름,급여,부서명,근무지를 출력하라.
select empno,ename,sal,d.dname,d.loc from emp e, dept d
where E.DEPTNO=D.DEPTNO and e.job='SALESMAN';
4. 사원번호,이름,업무,급여,급여의 등급,하한 값,상한 값을 출력하라.
select e.empno,e.ename,e.job, e.sal, s.grade,s.losal,s.hisal from emp e, salgrade s
where e.sal>=s.losal and e.sal<=s.hisal;
5. EMP 테이블에서 SELF JOIN으로 상사를 출력하라. 사원번호(EMPNO), 사원명(ENAME),상사 번호(MGR_NO),상사명(MGR_NAME) , 상사가 없는 사람도 출력하라.
select e.empno,e.ename,e.MGR,m.ename from emp e,emp m
where E.MGR=M.EMPNO(+);
6. 상사가 7698인 사원의 이름, 사원번호, 상사번호, 상사명을 출력하라.
select e.ename,e.MGR,m.ename from emp e,emp m
where E.MGR=M.EMPNO and e.mgr=7698;
7. NEW YORK에서 근무하고 있는 사원에 대해 이름, 업무, 급여, 부서명을 출력
select empno,job,sal,d.deptno from emp e,dept d
where e.deptno=d.deptno and d.loc='NEW YORK';
8. 보너스를 받는 사원에 대해 이름, 업무, 급여, 부서명을 출력
select ename,job,sal,d.dname from emp e,dept d
where e.deptno=d.deptno and e.comm is not null;
9. 이름 중 L자를 가진 사원에 대해 이름, 업무, 부서명, 부서 위치를 출력
select ename,job,d.dname,d.loc from emp e, dept d
where e.deptno=d.deptno and e.ename like '%L%';
10. 사원번호, 이름, 업무, 부서번호, 부서명, 위치, 급여, 급여 등급을 출력하라.
select empno,ename,job,d.deptno,d.dname,d.loc,sal,s.grade from emp e,dept d, salgrade s
where e.deptno=d.deptno and e.sal>=s.losal and e.sal<=s.hisal;
11. SALES 부서에서 근무하는 사원번호, 이름, 부서번호, 부서명, 근무지역을 출력
select empno,ename,e.deptno,d.dname,d.loc from emp e, dept d
where E.DEPTNO=D.DEPTNO and d.dname='SALES';
12. 업무가 MANAGER이거나 CLERK인 사원의 사원번호, 이름, 급여, 업무, 부서명, 급여등급을 출력하라.
select empno,ename,sal,job,d.dname,s.grade from emp e,dept d, salgrade s
where e.deptno=d.deptno and e.sal>=s.losal and e.sal<=s.hisal and (e.job='MANAGER' OR E.JOB='CLERK');
13. 사원번호, 사원이름, 사원급여, 상사번호, 상사 이름, 상사의 업무를 출력하라. 상사가 없는 사람도 출력하라.
select e.empno,e.ename,e.sal,e.mgr,m.job from emp e,emp m
where e.mgr=m.empno(+);
14. EMP 테이블에서 그들의 상사보다 먼저 입사한 사원에 대해 사원이름, 사원의 입사일, 상사 이름, 상사 입사일을 출력
select e.ename,e.hiredate,m.ename,m.hiredate from emp e,emp m
where e.mgr=m.empno and E.HIREDATE<M.HIREDATE;
15. 아래와 같이 사원의 급여와 사원의 급여만큼 ‘*’를 출력하라, * 하나는 100을 의미한다.
ENAME DNAME SAL/100 STAR
ADAMS RESEARCH 11 ***********
ALLEN SALES 16 ****************
……
> col star format A55 를 실행한 후에 쿼리 실행
> SELECT ~
select ename,d.dname,floor(sal/100),lpad('*',sal/100,'*') "star" from emp e,dept d
where e.deptno=d.deptno;
16. 사원 테이블명을 E,상사 테이블명을 M으로 할 때 사원번호(E.EMPNO), 사원이름, 사원 급여, 사원 급여등급, 상사번호(M.EMPNO), 상사이름, 상사 급여, 상사 급여 등급을 출력하라. 단, 상사(M) 테이블에서 부하직원이 없는 사람도 출력하라.
select e.empno,e.ename,e.sal,s.grade,m.empno,m.ename,m.sal,ms.grade from emp e,emp m,salgrade s,salgrade ms
where e.mgr(+)=m.empno and e.sal>=s.losal and e.sal<=s.hisal and m.sal>=ms.losal(+) and m.sal<=ms.hisal(+);
17. 사원번호, 사원 이름, 사원의 급여,사원급여 등급, 상사번호, 상사 부서번호, 상사의 부서명을 출력하라. 단, 상사가 없는 사람도 출력하라.
select e.empno,e.ename,e.sal,s.grade,M.EMPNO,m.deptno,d.dname from emp e,dept d,emp m,salgrade s
where e.mgr=M.EMPNO and e.sal>=s.losal and e.sal<=s.hisal and m.deptno=d.deptno;
18. 사원번호, 사원 이름, 사원의 부서번호,사원의 부서명, 상사이름, 상사 부서번호, 상사의 근무지역을 출력하라. 단, 사원테이블의 상사가 없는 사람도 출력하고 사원이 존재하지 않는 부서번호와 부서명도 출력하라.
select e.empno,e.ename,e.deptno,d.dname,m.ename,m.deptno,d2.loc from emp e,dept d,emp m,dept d2
where e.deptno=d.deptno and e.mgr=m.empno and m.deptno=d2.deptno;
남교수님 메모
'SQL' 카테고리의 다른 글
[Oracle] SQL Class 9 - DML 명령, 실습예제, 병합(merge) (0) | 2023.11.06 |
---|---|
[Oracle] SQL Class 5(남교수님 정리)- 단일행함수 마무리 (0) | 2023.11.06 |
[Oracle] SQL Class 8 - Group_ Function 문제 및 답안 (0) | 2023.11.06 |
[Oracle] SQL Class 7(남교수님 정리) - 서브쿼리, 다중컬럼 서브쿼리, 스칼라 서브쿼리, Top & N 서브쿼리, with 명령, Level 쿼리 (0) | 2023.11.06 |
[Oracle] SQL Class 7 - [고급함수] 서브쿼리 (0) | 2023.11.06 |