DB/oracle

[oracle] 예제 scott계정 (1) 1~7

@예민한 방구석여포 힘히힘 2021. 2. 4. 17:21
반응형

*출처 오라클 홈페이지*

지만,,, 해답은 내가...! 

연습기록물 ㅠㅠㅠ

틀린 부분이나 모르는 부분 고쳐 나갈 예정! 

 

 

 

scott 계정에 들어있는 테이블을 이용해준다.

없다면 이곳에!

 

 [oracle] scott 계정 없음 생성하기

 

--1. EMP와 DEPT TABLE을 JOIN하여 부서 번호, 부서명, 이름, 급여를 출력하라.--

 

 

 

 

SELECT e.deptno, d.dname, e.ename, e.sal
FROM dept d, emp e
WHERE e.deptno = d.deptno;

 

 

 

 

--2. 이름이 'ALLEN'인 사원의 부서명을 출력하라. --

 

 

 


SELECT e.ename, d.dname
FROM dept d, emp e
WHERE e.ename='ALLEN';

 

 

 

 

 

 

--3. DEPT Table에 있는 모든 부서를 출력하고, EMP Table에 있는 DATA와 JOIN하여 모든 사원의 이름, 부서번호, 부서명, 급여를 출력하라.  ---

 

SELECT * FROM dept d;

 


--??? 다른 방법이 있나요...?--

 


SELECT e.ename, d.deptno, d.dname, e.sal
FROM dept d
INNER JOIN EMP e
ON d.deptno= e.deptno;

 

여기서 e.ename을 사용하였으면 emp e로 사용해주어야 한다. 

 

 

--4. emp table에 있는 empno와 MGR을 이용하여 서로의 관계를 다음과 같이 출력하라.--
--smith의 매니저는 ford이다-- ###########

SELECT * FROM emp;

MERGE 
INTO TABLE 


--????--

SELECT * FROM emp;

 

 

 

--5. 'ALLEN'의 직무와 같은 사람의 이름, 부서명, 급여, 직무를 출력하라.--

 

 

SELECT e.ename, e.deptno, d.dname, e.sal, e.job
FROM emp e, dept d
WHERE e.job = (SELECT e.job 
               FROM emp e 
               WHERE e.ename= 'ALLEN');

 

 

 

 

 

 

 

--6. 'JONES'가 속해 있는 부서의 모든 사람의 사원번호, 이름, 입사일, 급여를 출력하라 --

 

 

 

 

SELECT e.mgr, e.ename, e.hiredate, e.sal
FROM emp e
WHERE e.deptno = (SELECT e.deptno
                  FROM emp e
                  WHERE e.ename='JONES');

 

 

 

 

 

--7.  전체 사원의 평균임금보다 많은 사원의 사원번호, 이름, 부서명, 입사일, 지역, 급여를출력하라. --

 

 


SELECT e.mgr, e.ename, d.deptno, d.hiredate, e.loc, e.sal
FROM emp e
NATURAL JOIN dept d
AND 
WHERE e.sal=(SELECT e.sal
                 FROM emp e
                 WHERE e.sal> AVG(e.sal));
           
;

오류남... 왜?