본문 바로가기
Database/Oracle

[Oracle] 3-1. Where

by tangle96 2021. 6. 4.

Where 절을 사용하는 기능은 다음과 같습니다

 

WHERE 절 이용
-비교연산
-논리연산
-BETWEEN
-IN 연산
-LIKE연산

 

->비교 연산 예제는 이전 글 참고 바랍니다

 

1. 논리 연산

AND OR NOT

 

Q1. JOB이 MANAGER이면서 SALARY가  1500이상인 사원의 이름을 출력하시오

 

해석 ) 이러면 조건이 2개 이상이죠 JOB - MANAGER와 SALARY >= 1500

요 두개의 조건을 AND 논리연산으로 묶어서 쿼리를 작성해봅시다.

 

SELECT ENAME FROM EMPLOYEE WHERE JOB = 'MANAGER' AND SALARY >= 1500;

 

 

OR 조건이면 둘중 하나를 만족하면 그 값이 나오겠죠?

 

 

2.BETWEEN

Q2. 급여가 2000과 3000사이인 사원의 이름과 급여를 출력하라

 

select ename, salary from employee where salary not BETWEEN 2000 and 3000;

 

 

비교연산으로 and 묶어주는 2번의 번거로움을 BETWEEN을 활용하면 간단하게 쿼리문을 작성 가능합니다.

 

3.IN

Q3. COMMISSION 값이 400,500,1400 중 해당되는 사원의 정보를 출력하라

 

select * from employee where commission in(400,500,1400);

 

 

그러면 COMMISSION 컬럼에서 IN( 값 ) 을 찾아 표시해주죠

 

결과를 보면 400은 없었나봅니다 500과 1400 COMMISSION 값을 소유한 사원의 정보는 출력 되었습니다.

 

4.LIKE

특정 문자열을 포함하거나 앞뒤로 상관없이 일부의 문자열도 탐색 해줍니다.

 

Q4. 사원이름에 A가 포함된 사원의 정보를 출력하시오 

 

SELECT * FROM EMPLOYEE WHERE ENAME LIKE '%A%';

 

ENAME에 A가 포함되어 있는 목록이 쭉 출력된 것을 알 수 있습니다.

 

그외 % 위치와 사용 에 따라 '%A' 조건이면 A의 앞쪽을 상관 하지 않는겁니다.

반대로 'A%' 조건이면 A의 뒤쪽을 상관 하지 않는겁니다.

 

'A%' 의 조건으로 하니까 맨앞 A가 들어간 이름만 출력된 것으로 이해를 완료하였습니다.

 

'Database > Oracle' 카테고리의 다른 글

[Oracle] 5.Order by  (0) 2021.06.07
[Oracle] 4.Group by / Having  (0) 2021.06.04
[Oracle] 3.Where 절 (조건)  (0) 2021.06.03
[Oracle] 2. Schema 작업과 별칭, DISTINCT(중복 제거)  (0) 2021.06.03
[Oracle] 1.Database use and start  (0) 2021.06.01

댓글