BETWEEN ~ AND
Q ] 급여가 2000~3000 사이의 사원을 검색하는 쿼리문
A ] select * from emp where sal BETWEEN 2000 AND 3000;
IN
Q ] 커미션이 300 혹은 500 혹은 1400 인 사원이 있는지 검색하시요
A ] select * from emp where comm = 300 or comm = 500 or comm 1400;
A ] select * from emp where comm IN(300,500,1400);
Q ] 커미션이 300 혹은 500 혹은 1400 이 아닌 사원이 있는지 검색하시요
A ] select * from emp where NVL(comm,0) NOT IN(300,500,1400);
Q ] 사원이름이 ford 인 사원의 이름 , 월급 , 입사일 출력
A ] select ename , sal , hiredate from emp where ename = 'FORD';
A ] select ename 이름 , sal 월급 , hiredate 입사일 from emp where ename = 'FORD';
와일드 카드 , LIKE
Q ] 이름의 마지막 글자가 ' n ' 인 사원들을 출력하시요.
A ] select * from emp where ename LIKE ' %N ' ;
Q ] 이름의 첫번째 글자가 ' t ' 인 사원의 이름과 월급 , 부서번호를 출력하시요.
A ] select ename , sal , deptno from emp where ename LIKE ' T%';
Q ] 이름에 'A' 을 갖고있는 사원들을 출력
A ] select * from emp where ename LIKE '%A%';
Q ] 이름이 5자인 사원들 출력
A ] select * from emp where ename LIKE '_____'; // 언더바 5개
Q ] 이름의 3번째 글자가 R 이고 30번 부서에 근무하는 사원 출력
A ] select * from emp where ename LIKE '__R%' and deptno = 30;
Q ] 커미션이 300 500이 아니고 사원 번호 세번째가 9 인 사원 모두출력^^^
A ] select * from emp where NVL(comm,0) NOT IN(300,500) and empno LIKE '__9%';
Q ] 입사일이 81/04/02 인 사원의 월급을 500원 인상
A ] select ename "이름" , sal "월급" , sal + 500 "인상된 월급" from emp
where hiredate = '81/04/02';
NULL
Q ] 커미션을 받지않는 사원들을 출력
A ] select * from emp where comm IS NULL
Q ] 커미션을 받는 사람
A ] select * from emp where comm IS NOT NULL
DISTINCT
Q ] emp 테이블에서 직급(job)이 중복되어 출력되지 않는 결과를 출력하시요.
A ] select DISTINCT job from emp;
Q ] emp 테이블에서 보너스를 받는 사원중에 500과 1400이 아닌 사원들의 이름과 보너스 금액출력하시요
A ] select ename , comm from emp where comm IS NOT NULL and comm NOT IN(500,1400);
Q ] 30번 부서의 사원들의 연봉을 20% 인상한후 이름 , 부서번호, 월급 , 인상된 연봉 순으로 출력
A ] select ename "이름", deptno " 부서번호" , sal "월급" , sal*12*1.2 "인상된 연봉"
from emp where deptno = 30;
종합
Q ] emp 테이블에서 이 회사의 사장의 이름과 부서번호 직급을 출력하는 쿼리문을 작성하시오
A ] select ename "사장의이름" , deptno "부서번호" , job "직급" from emp
where mgr IS NULL;
Q ] emp 테이블의 사원중에서 커미션을 받지않는 사원의 월급을 15% 인상한 금액을
이름 , 월급 , 인상한 월급으로 출력하시오.
A ] select ename 이름 , sal 월급 , sal*1.15 인상한월급 from emp
where comm IS NULL ;
Q ] emp 테이블의 사원중에서 커미션을 받지않는 사원의 월급을 15% 인상한 금액을
이름 , 월급 , 인상한 월급으로 출력하시오.( 커미션 0도 출력 )
A ] select ename 이름 , sal 월급 , sal*1.15 인상한월급 , comm from emp
where comm IS NULL or comm = 0 ;
A ] select ename 이름 , sal 월급 , sal*1.15 인상한월급 , comm from emp
where NVL(comm,0) = 0 ;
Q ] emp 테이블 에서 이름에 'LA' 가 들어있지 않은 사원의 이름, 월급 , 입사일을 출력하시오
A ] select ename,sal,hiredate from emp where ename NOT LIKE '%LA%';
Q ] emp 테이블에서 이름의 세번째 글자가 'R' 이고 다섯번째 글자가 'E'인
사원의 이름 , 월급 , 연봉을 35% 인상한 금액을 추출하는 쿼리문작성 하시오.
A ] select ename , sal , sal*12*1.35 from emp
where ename LIKE '__R_E%';
Q ] 사원이름 'TI' 가 있는 사원과 첫번째 글자가 'S'로 시작하는 사원들의
이름, 월급 , 직급을 출력하시오.
A ] select ename ,sal , job from emp where ename LIKE '%TI%' or ename LIKE 'S%';
ORDER BY 절
Q ] 사원들의 급여를 오름차순으로 정렬하는 쿼리문을 작성하시요.
A ] select * from emp ORDER BY sal ASC;
Q ] 가장 최근 입사한 사람부터 나오는 쿼리문을 작성하시요.
A ] select * from emp ORDER BY hiredate DESC;
Q ] emp 테이블에서 급여가 많은 사원부터 출력하되 급여가 1600이상인 사원만 출력하세요.
A ] select * from emp where sal >= 1600 ORDER BY sal DESC;
Q ] 부서번호가 빠른 사원부터 출력하되 같은 부서내 사원들은 최근에 입사한 사원부터 출력하세요.
A ] select ename , deptno , hiredate from emp ORDER BY deptno ASC ,hiredate DESC;
Q ] 입사일이 81년 6월 1일 이후에 입사한 사원들을 출력하되 최근에 입사한 사원을 먼저 나오게하세요.
A ] select * from emp where hiredate >= '81/06/01' ORDER BY hiredate DESC
'국비 과정 > Oracle DataBase' 카테고리의 다른 글
| 국비 - 0824 ( 숫자 함수 , 문자 함수 , 날짜 함수) (0) | 2022.08.24 |
|---|---|
| DB - 0824 예제 (0) | 2022.08.24 |
| 국비 - 0823 ( 와일드카드 , NULL , ORDER BY) (0) | 2022.08.23 |
| DB - 0822 예제 (0) | 2022.08.22 |
| 국비 - 0822 (scott / tiger ) (0) | 2022.08.22 |