-- 1번 부서번호가 10번인 부서의 사람 중 사원번호, 이름, 월급을 출력하라.
select empno, ename, sal
from emp
where deptno = 10;
-- 2번 사원번호가 7369인 사람 중 이름, 입사일, 부서번호를 출력하라.
select ename, hiredate, deptno
from emp
where empno = 7369;
-- 3번 이름이 ALLEN인 사람의 모든 정보를 출력하라.
select *
from emp
where ename = 'ALLEN';
-- 4번 입사일이 80/12/17인 사원의 이름, 부서번호, 월급을 출력하라.
select ename, deptno, sal
from emp
where hiredate = '80/12/17';
-- 5번 직업이 MANAGER가 아닌 사람의 모든 정보를 출력하라.
select *
from emp
where job != 'MANAGER';
-- 6번 입사일이 81/04/02 이후에 입사한 사원의 정보를 출력하라.
select *
from emp
where hiredate > '81/04/02';
-- 7번 급여가 $800 이상인 사람의 이름, 급여, 부서번호를 출력하라.
select ename, sal, deptno
from emp
where sal >= 800;
-- 8번 부서번호가 20번 이상인 사원의 모든 정보를 출력하라.
select *
from emp
where deptno >= 20;
-- 9번 입사일이 81/12/09 보다 먼저 입사한 사람들의 모든 정보를 출력하라.
select *
from emp
where hiredate < '81/12/09';
-- 10번 입사번호가 7698보다 작거나 같은 사람들의 입사번호와 이름을 출력하라.
select ename, empno
from emp
where empno <= 7698;
-- 11번 입사일이 81/04/02보다 늦고 82/12/09보다 빠른 사원의 이름, 월급, 부서번호를 출력하라.
select ename, sal, deptno
from emp
where hiredate > '81-04-02' and hiredate < '82-12-09';
-- 12번 급여가 $1,600보다 크고 $3,000보다 작은 사람의 이름, 직업, 급여를 출력하라.
select ename, job, sal
from emp
where sal between 1600 and 3000;
-- 13번 사원번호가 7654와 7782 사이 이외의 사원의 모든 정보를 출력하라.
select *
from emp
where empno not between 7654 and 7782;
-- 14번 이름이 B와 J사이의 모든 사원의 정보를 출력하라.
select *
from emp
where ename between 'B' and 'J';
select *
from emp
where ename >= 'B' and ename <= 'J';
-- 15번 입사일이 81년 이외의 입사한 사람의 모든 정보를 출력하라.
select *
from emp
where substr(hiredate, 3,2) != '81';
-- 16번 직업이 MANAGER와 SALESMAN인 사람의 모든 정보를 출력하라.
select *
from emp
where job = 'MANAGER' or job = 'SALESMAN';
-- 17번 부서번호가 20, 30번을 제외한 모든 사람의 이름, 사원번호, 부서번호를 출력하라.
select ename, empno, deptno
from emp
where deptno not in (20,30);
-- 18번 S로 시작하는 사원의 사원번호, 이름, 입사일, 부서번호를 출력하라.
select ename, hiredate, deptno
from emp
where ename like 'S%';
-- 19번 입사일이 81년도인 사람의 모든 정보를 출력하라.
select *
from emp
where substr(hiredate, 3,2) = '81';
-- 20번 이름 중 S자가 들어가 있는 사람만 모든 정보를 출력하라.
select *
from emp
where ename like '%s%';
-- 21번 이름이 S로 시작하고 마지막 글자가 T인 사람의 모든 정보를 출력하라(단, 이름은 전체 5자리이다.)
select *
from emp
where ename like 's___t';
-- 22번 첫 번쨰 문자는 관계없고, 두 번쨰 문자가 A인 사람의 정보를 출력하라.
select *
from emp
where ename like '_A%';
-- 23번 커미션이 NULL인 사람의 정보를 출력하라.
select *
from emp
where comm is null;
-- 24번 커미션이 NULL이 아닌 사람의 정보를 출력하라.
select *
from emp
where comm is not null;
-- 25번 부서가 30번 부서이고 급여가 $1,500 이상인 사람의 이름, 부서, 월급을 출력하라.
select ename, (select dname
from dept
where deptno = 30), sal
from emp
where deptno = 30 and sal >= 1500;
-- 26번 이름의 첫 글자가 K로 시작하거나 부서번호가 30인 사람의 사원번호, 이름, 부서번호를 출력하라.
select empno, ename, deptno
from emp
where ename like 'K%' or deptno = 30;
-- 27번 급여가 $1500 이상이고 부서번호가 30번인 사원 중 직업이 MANAGER인 사람의 정보를 추력하라.
select *
from emp
where sal > 1500 and deptno = 30 and job = 'manager';
-- 28번 부서번호가 30인 사람 중 사원번호가 SORT.
select *
from emp
where deptno = 30
order by empno asc;
-- 29번 급여가 많은 순으로 SORT하라.
select *
from emp
order by sal desc;
-- 30번 부서번호로 ASCENDING SORT 한 후 급여가 많은 사람 순으로 출력하라.
select *
from emp
order by deptno asc, sal desc;
-- 31번 부서 번호가 DESCENDING SORT하고, 이름 순으로 ASCENDING SORT, 급여순으로 DESCENDING SORT 하라.
select *
from emp
order by deptno desc, ename asc, sal desc;
-- 32번 EMP TABLE 에서 이름, 급여, 커미션 금액, 총액 (SAL + COMM) 을 구하여 총액이 많은 순서로 출력하라.
-- 단 커미션이 NULL인 사람은 제외한다.
select ename, sal, comm, (sal+comm)
from emp
where comm is not null;
-- 33번 10번 부서의 모든 사람들에게 급여의 13%를 보너스로 지불하기로 하였다. 이름, 급여, 보너스 금액, 부서번호를 출력하라.
select ename, sal, (sal*0.13) as 보너스금액, deptno
from emp
where deptno=10;
-- 34번 30번 부서의 연봉을 계산하여 이름, 부서번호, 급여, 연봉을 출력하라.
-- 단 연말에 급여의 150%를 보너스로 지급한다.
select ename, deptno, sal 급여,sal*12 연봉, sal*1.5 보너스, ((sal*12)+(sal*1.5)) 최종연봉
from emp;
-- 35번 급여가 $2,000 이상인 모든 사람은 급여가 15%를 경조비로 내기로 하였다.
-- 이름, 급여, 경조비 를 출력하라.
select ename, sal, sal*0.15 as 경조비
from emp
where sal >= 2000;
-- 36번 모든 사원의 실수령액을 계산하여 출력하라.
-- 단 급여가 많은 순으로 이름, 급여, 실수령액을 출력하라
-- (실수령액은 급여에 대해 10%의 세금을 뺸 금액)
select ename 이름, sal 급여, (sal-(sal*0.1)) as 실수령액
from emp
order by sal desc;
Share article