Programming/오라클[SQL]

오라클[sql] 조건절 표현방법

콩king 2022. 8. 21. 22:11

조건절 표현방법

- 산술연산자 ( + - * / 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;