본문 바로가기

Database/Oracle

Oracle。WHERE 절과 연산자

728x90
반응형

특정 조건의 데이터 조회

 

SELECT *
 FROM TABLE_NAME
WHERE 조건절;

 

▶ JOB 테이블의 MAX_SALARY가 20000 초과인 모든 데이터 출력

 

1. 비교 연산자

 

연산자  의미 예제
=  같다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL= 500;
>  보다 크다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL> 500;
<  보다 작다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL< 500;
>=  보다 크거나 같다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL>= 500;
<=  보다 작거나 같다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL<= 500;
<>, !=, ^=  다르다.  SELECT DEPTNO, ENAME, SAL
  FROM EMP
 WHERE SAL<> 500;

 

2. 연산자

 

논리 연산자 의미 조건1 조건2 결과
AND(&&)  두 가지 조건을 모두 만족해야만 검색할 수 있습니다.
 SELECT * FROM EMP WHERE DEPTNO=20 AND JOB='과장';


거짓
거짓

거짓

거짓

거짓
거짓
거짓
OR(||)  두 가지 조건 중에서 한 가지만 만족하더라도 검색할 수 있습니다.
 SELECT * FROM EMP WHERE DEPTNO=20 OR JOB='과장';


거짓
거짓

거짓

거짓



거짓
NOT(<>)  조건에 만족하지 못하는 것만 검색합니다.
 SELECT * FROM EMP WHERE NOT DEPTNO=20;

거짓
  거짓

 

# BETWEEN AND 연산자

비교 연산자와 논리 연산자를 결합하여 표현

 

COLUMN_NAME BETWEEN A AND B

 

# IN 연산자

특정 필드의 값이 A거나, B거나, C 중에 어느 하나만 만족하더라도 출력

OR를 사용하여 복잡하고 쿼리문을 작성하지 않고 IN 연산자를 사용하여 훨씬 간단하게 표현

 

WHERE COLUMN_NAME (NOT) IN(A, B, C)

 

# LIKE 연산자와 와일드 카드

데이터의 정확한 값을 모를경우 일부만 일치하더라도 조회 가능

 

COLUMN_NAME LIKE PATTERN

 

LIKE 다음에는 PATTERN을 기술해야하는데, PATTERN에는 두 가지 와일드 카드 사용

 

% // 문자가 없거나, 하나 이상의 문자가 어떤 값이 와도 상관없다.
_ // 하나의 문자가 어떤 값이 와도 상관없다.
 
SELECT *
 FROM EMP
WHERE ENAME LIKE '%금%'; // 앞과뒤에 어떤 문자열이 몇 개가 오든 상관없이 문자열 중간에 '성'이란 문자만 있으면 찾는다.

SELECT *
 FROM EMP
WHERE ENAME LIKE '_금'; // 앞의 단 하나의 문자가 어떤 문자가 오든 두번째 문자가 '금'인 문자를 찾는다.

 

# NOT LIKE 연산자

 

SELECT *
 FROM EMP
WHERE ENAME NOT LIKE '%금%'; // 문자열 중간에 '금'이 포함되지 않는 데이터를 검색한다.

 

# NULL인 값을 찾기 위한 IS NULL과 NULL이 아닌 값을 찾기 위한 IS NOT NULL 연산자

 

SELECT *
 FROM EMP
WHERE COMM IS (NOT) NULL;
728x90
반응형