오라클[sql] 조건절 표현방법
조건절 표현방법
- 산술연산자 ( + - * / mod )
- 비교연산자 > < >= <= = !=(<>)
- 논리연산자 not and or
- 문자열연산자 like, ||(연결자)
- BETWEEN, IN, ( EXISTS, NOT )
- IS NULL / IS NOT NULL
산술연산자
SELECT ename, sal, sal+100
FROM emp
WHERE sal-500 = 1000;

비교연산자
SELECT empno, ename, job, deptno
FROM emp
WHERE job <> 'CLERK';
-- WHERE job != 'CLERK'; / WHERE NOT job = 'CLERK';
-- WHERE job = 'CLERK' OR deptno = 20;
논리연산자
- BETWEEN A and B 연산자
- 하나의 값이 범위내에 속하는지 알아보는 연산자
- A 이상 B 이하 (A <= 값 <=B)
- 급여가 2000~3000 사이라면?
SELECT ename, sal
FROM emp
WHERE sal >= 2000 and sal <=3000;
SELECT ename, sal
FROM emp
WHERE sal BETWEEN 2000 and 3000;
- 2000미만이거나 3000초과인 사원의 이름과 월급을 출력해주세요
SELECT ename, sal
FROM emp
WHERE sal NOT BETWEEN 2000 and 3000;
- comm 이 300 or 500 or 1400인 사원의 이름과 comm을 출력해주세요
SELECT ename, comm
FROM emp
WHERE comm = 300 OR comm = 500 OR comm = 1400;
IN : IN 뒤에 작성된 데이터 중에 하나만 맞아도 출력
SELECT ename, comm
FROM emp
WHERE comm IN (300, 500, 1400);
NULL 체크
- IS NULL / IS NOT NULL
SELECT ename, comm
FROM emp
WHERE comm IS NUll;
SELECT ename, comm
FROM emp
WHERE comm IS NOT NUll;
like
- 컬럼 : 대소문자 무관 / 값 : 대소문자 필수
- like : 문자열 찾기 위한 연산자
- 이름이 F로 시작하는 사람
- F 다음은 어떤단어가 나오든 상관없습니다. : %
▶ 와일드 카드 % _
- % : 어떤 문자가 오든 상관 없음. (복수개) m 몇개의 단어가 들어오든 무관
- _ : 어떤 문자가 오든 상관 없음. (단한개) * 문자의 위치, 순서 m 한개의 단어가 들어오는 것
▶ A 위치상관없이 이름중에 들어가는 사람
SELECT ename
FROM emp
WHERE ename like '%A%';
▶ N 으로 끝나는 사람
SELECT ename
FROM emp
WHERE ename like '%N';
▶ A가 2번쨰 글자
SELECT ename
FROM emp
WHERE ename like '_A%';
▶ A가 2개 들어 간 경우
SELECT ename
FROM emp
WHERE ename like '%A%A%';
▶ 만약에 %, _(언더바) 와일드카드를 검색하고 싶으면 \(익스케이프) 붙여주면 됩니다.
SELECT ename
FROM emp
WHERE ename like '%\%%'; -- % 단어를 검색
연결연산자 ||
SELECT ename || ' ' || job AS staff
FROM emp
WHERE deptno = 30;
