반응형
안녕들 하시죠!
이번 시간에도 '사내 DB테이블'을 이용한 문제풀이를 통해 ORACLE SQL 쿼리문을 복습해보겠습니다.
언어 및 툴
ORACLE DATABASE, SQLDEVELOPER
테이블 생성 참고
2019/09/28 - [Database] - ORACLE SQL 쿼리 복습을 위한 '사내 DB테이블' 세팅
쿼리 실행 순서
5 SELECT
1 FROM
2 WHERE
3 GROUP BY
4 HAVING
6 ORDER BY
문제
1. 사원수가 3명 이상인 부서명과 인원수를 출력하시오. ( group by, having )
having절 -- group by로 묶은 값들에 조건을 추가한다 (=where)
SELECT [그룹으로 묶은 컬럼명]
, [집계할 컬럼명]
FROM [테이블명]
GROUP BY [그룹으로 묶을 컬럼명]
HAVING [그룹으로 묶은 값에 조건 추가]
count 함수 -- 테이블 전체 행 검색 ( count(*) )
특정 컬럼의 숫자 검색 ( count(컬럼명) )
1
2
3
4
5
|
select job
, count(*)
from emp
group by job
having count(*) >= 3;
|
cs |
2. 직무 중 가장 적게 수입을 가지는 직무의 평균 월급을 출력하시오.
Oracle 내부조인 -- 테이블간에 동일한 컬럼을 조인
1
2
3
4
5
6
7
|
select emp.ename
, emp.empno
, dept.dname
, dept.deptno
from emp
, dept
where emp.deptno = dept.deptno;
|
cs |
Natural 조인 -- 테이블간에 동일한 모든 컬럼을 조인
1
2
3
4
5
|
select ename
, empno
, dname
, deptno
from emp natural join dept;
|
cs |
Join On -- 조인의 세부조건을 지정할 수 있다.
1
2
3
4
5
6
|
select ename
, empno
, dname
, dept.deptno
from emp join dept
on emp.deptno = dept.deptno;
|
cs |
Join Using -- 컬럼을 선택해서 조인.
1
2
3
4
5
6
|
select ename
, empno
, dname
, deptno
from emp join dept
using (deptno);
|
cs |
4. 부서가 30이고, 급여가 1500이상인 사원의 이름, 급여, 부서명, 부서번호를 출력하시오. ( Join on )
1
2
3
4
5
6
7
8
|
select emp.ename
, emp.sal
, dept.dname
, dept.deptno
from emp join dept
on emp.deptno = dept.deptno
where emp.deptno = 30
and sal >= 1500;
|
cs |
5. 사원수가 5명이 넘는 부서의 부서명과 사원수를 출력하시오.
1
2
3
4
5
6
7
8
|
select dept.dname
, count(*)
from emp
, dept
where emp.deptno = dept.deptno
group by emp.deptno
, dept.dname
having count(*) >= 5;
|
cs |
6. ADAMS 사원이 근무하는 부서이름과 지역이름을 출력하시오.
1
2
3
4
5
6
7
|
select dept.dname
, dept.loc
, emp.ename
from emp
, dept
where emp.deptno = dept.deptno
and emp.ename = 'ADAMS';
|
cs |
7. NEW YORK 이나 DALLAS 지역에 근무하는 사원들의 사원번호, 사원이름을 사원번호 순으로 검색하시오.
1
2
3
4
5
6
7
|
select e.empno
, e.ename
from emp e
, dept d
where e.deptno = d.deptno
and (d.loc = 'NEWYORK' or d.loc='DALLAS')
order by e.empno;
|
cs |
오늘은 여기까지입니다 감사합니다.
'Database' 카테고리의 다른 글
ORACLE SQL 쿼리문 문제풀이 -- 2 ( TO_DATE, TO_CHAR, DECODE, NVL, NVL2, AVG ) (0) | 2019.09.29 |
---|---|
ORACLE SQL 쿼리문 문제풀이 -- 1 ( SELECT, FROM, WHERE, ORDER BY ) (0) | 2019.09.29 |
ORACLE SQL 쿼리 복습을 위한 '사내 DB테이블' 세팅 (0) | 2019.09.28 |
오라클 11g 설치 (0) | 2019.05.28 |