본문 바로가기

DB

- 1 일차 SQL 과제 –

 

-      

다음과 같은 ERD 구조에 테이블이 3개 있습니다. 앞으로는 이 데이터를 바탕으로 주어진 요구 사항을 만족하는 SQL을 작성하세요.

ERD의 내용은 사원(EMP), 부서(DEPT), 급여등급(SALGRADE)에 대한 테이블입니다. 간단히 설명하자면 부서라는 테이블이 있고, 사원이라는 테이블이 있습니다. 사원은 특정 부서에 속해 있습니다.

사원이 받는 급여는 급여 등급 테이블의 구간(최소금액~최대금액)중에 하나 안에 속합니다. E

 

1.     사원 테이블에서 사원번호가 7369, 7698 번인 사원번호와 이름을

출력하세요?

 



SELECT ENAME

              ,EMPNO

FROM emp

WHERE empno IN(7369,7698);

2.    사원 테이블에서 사원번호가 7369, 7698 번인 아닌 사원번호와 이름을 출력하세요?

ex)

 

 

SELECT ENAME

              ,EMPNO

FROM emp

WHERE empno NOT IN(7369,7698);

 (WHERE  empno !=7369 AND empno !=7698)
3.    사원 테이블에서 급여(SAL) 3000에서 5000사이인 사원 정보를 다 출력하세요?

ex)

 

 

 

SELECT *

FROM emp

WHERE sal BETWEEN 3000 AND 5000;

 

 

 

 

 

4.사원 테이블에서 고용일자(HIREDATE) 1981 12 1일 이후 고용된 사원 정보를 다 출력하세요?

 

ex)

 

SELECT hiredate

              ,TO_CHAR(hiredate,'YYYY-MM-DD')
       FROM emp

--WHERE hiredate >= '81/12/01'

--WHERE TO_CHAR(hiredate,'YYYY-MM-DD')>= '1981-12-01'
      EXTRACT(
      ORDER BY hiredate ASC; 


5.사원 테이블에서 직업(JOB) SALESMAN 중에서 사원번호의 최대값을 출력하세요?

ex)

 

SELECT MAX(empno)

FROM emp

WHERE job= 'SALESMAN';


6. 사원 테이블에서 직업이 SALESMAN 중에서 급여를 제일 많이 받는 사람의 이름 출력


SELECT empno, ename, sal
FROM emp e JOIN (
                           SELECT job,MAX(sal) as MAXSAL
                            FROM emp
                            WHERE job='SALESMAN'
                             GROUP BY job
                              ) j
ON e.job = j.job
WHERE sal = MAXSAL;

 

'DB' 카테고리의 다른 글