# 예제 9. 연봉이 36000 이상인 사원들의 이름, 연봉 출력
# tip) 연봉은 월급의 12배이다.
select ename, sal * 12 as 연봉
from emp
where sal * 12 >= 36000;
# 문제 1. 직업이 ANALYST 인 사원들의 이름, 연봉 출력
select ename, sal * 12 as 연봉
from emp
where job = 'ANALYST';
✅ 참고
쿼리 실행 순서는
from→where→select절이기 때문에 order by절 제외 다른 절에서는 alias를 사용할 수 없다.select ename, sal * 12 as 연봉 from emp where 연봉 >= 36000;여기서
sal대신연봉 * 12 >= 36000작성 시 에러 발생
^= 와 != 는 같다
# 예제 10. 월급이 1200 이하인 사원들의 이름, 월급, 직업, 부서번호 출력
select ename, sal, job, depno
from emp
where sal <= 1200;
# 문제 1. 직업이 SALESMAN이 아닌 사원들의 이름, 직업 출력
select ename, job
from emp
where job != 'SALESMAN';
# 예제 11. 월급이 1000에서 3000 사이인 사원들의 이름, 월급 출력
select ename, sal
from emp
where sal BETWEEN 1000 AND 3000;
# where sal >= 1000 and sal <= 3000; 도 가능
# 문제 1. 월급이 1000에서 3000 사이가 아닌 사원들의 이름, 월급 출력
select ename, sal
from emp
where sal NOT BETWEEN 1000 AND 3000;
# where sal < 1000 or sal > 3000;
# 문제 2. 1981년 11월 1일부터 1982년 5월 30일 사이에 입사한 사원들의 이름, 입사일 출력
select ename, hiredate
from emp
where hiredate BETWEEN '81/11/01' AND '82/05/30';
- 와일드카드(
%) :%의 위치에 어떤 문자열이든 갯수에 관계없이 출력- 언더바(
_) :_의 위치에 어떤 문자열이든 단 하나만 해당 위치에 출력
# 예제 12. 이름의 첫 글자가 S로 시작하는 사원들의 이름 출력
select ename
from emp
where ename like 'S%';
# 문제 1. 이름의 끝 글자가 T로 끝나는 사원들의 이름 출력
select ename
from emp
where ename like '%T';
# 문제 2. 이름의 두 번째 철자가 M인 사원들의 이름 출력
select ename
from emp
where ename like '_M%';
0vsNULL비교
NULL: 해당 컬럼에 데이터가 존재하지 않는 상태, 알 수 없는 값0: 알 수 있는 값
# 예제 13. 커미션이 null인 사원들의 이름, 커미션 출력
select ename, comm
from emp
where comm = NULL; # null값은 비교할 수 없기 때문에 비교연산자와 연산 불가능
# 정답
select ename, comm
from emp
where comm IS NULL;
# 문제 1. 커미션이 null이 아닌 사원들의 이름, 커미션 출력
select ename, comm
from emp
where comm IS NOT NULL;
컬럼명
IN('검색값1', '검색값2', ...)
- 한 개와 비교 :
=- 두 개 이상과 비교 :
IN
# 예제 14. 직업이 SALESMAN, ANALYST, MANAGER인 사원들의 이름, 월급, 직업 출력
select ename, sal, job
from emp
where job IN ('SALESMAN', 'ANALYST', 'MANAGER');
# 문제 1. 직업이 SALESMAN, ANALYST, MANAGER이 아닌 사원들의 이름, 월급, 직업 출력
select ename, sal, job
from emp
where job NOT IN ('SALESMAN', 'ANALYST', 'MANAGER');
# 비교연산자의 부정은 보통 NOT
# 예제 15. 직업이 SALESMAN이고 월급이 1200 이상인 사원들의 이름, 월급, 직업 출력
select ename, sal, job
from emp
where job = 'SALESMAN' AND sal >= 1200;
# 문제 1. 부서번호가 30번, 커미션이 100 이상인 사원들의 이름, 월급, 커미션 출력
select ename, sal, comm
from emp
where deptno = 30 AND comm >= 100;