SQL

[실습 3]인사 자료 조회하기

코린이도이 2021. 7. 2. 11:21

1. 정렬해서 조회하기

- 사원 테이블(emp) 자료에서 사원이름, 입사일, 생년월일을 조회한다. 결과는 생일이 빠른 순으로 정렬해서 나오도록 한다.

SELECT ename, hiredate, birth_date
FROM emp
ORDER BY birth_date;

 

2. 그룹함수 이용해서 조회하기

- 급여지급 테이블(salary)이용해서 2018년 12월 급여 중 지급액(pay_amt) 총합계와 지급액 평균, 지급액 중 최대값, 지급액 중 최소값을 조회한다.

SELECT sum(pay_amt), avg(pay_amt),
           max(pay_amt), min(pay_amt)
FROM salary
WHERE yymm = '201812' AND gubun = '1';

 

3. 조인 이용해서 조회하기

- 사원테이블(emp), 부서테이블(dept) 이용해서 서울지역(loc)에서 근무하는 사원들의 사원번호, 이름, 지급코드, 부서명(dname)을 조회한다.

SELECT e.empno, e.ename,
           e.jikgb_code, d.dname
FROM emp e JOIN dept d
ON e.deptno = d.deptno
WHERE d.loc = '서울';

- 사원테이블(emp), 직급테이블(jikgb)을 이용해서 사원 중 jikgb_name이 대리, 차장인 사원들만 이름, 입사일, jikgb_name을 조회한다.

SELECT e.ename, e.hiredate, j.jikgb_name
FROM emp e JOIN jikgb j
ON e.jikgb_code = j.jikgb_code
WHERE j.jikgb_name in ('대리', '차장');

- 사원테이블(emp), 직급테이블(jikgb), 부서테이블(dept)을 이용해서 사원번호, 사원이름, 부서명(dname), jikgb_name을 직급이 높은 사원부터 나오도록 정렬해서 조회한다.

SELECT e.empno, e.ename, d.dname, j.jikgb_name
FROM emp e JOIN dept d
ON e.deptno = d.deptno
JOIN jikgb j
ON e.jikgb_code = j.jikgb_code
ORDER BY j.jikgb_sort;

 

4. 서브쿼리 이용해서 조회하기

- 사원테이블(emp), 급여지급 테이블(salary)을 이용해서 2018년 12월 상여를 받은 사원들의 이름, 직급코드, 부서번호를 조회한다. (상여는 salary테이블 gubun이 2로 등록된다.)

SELECT ename, jikgb_code, deptno
FROM emp
WHERE empno in (select empno
                          from salary
                          where yymm = '201812' and gubun = '2');