SQL/ORACLE

WHERE 절의 조건 적용

mukom 2022. 10. 22. 17:37

1. WHERE 절이란?

 

WHERE 절은 SELECT 절을 사용할 때 원하는 데이터의 폭을 줄여 검색해주는 기능을 수행한다.

 

원하는 데이터만 추출하기 위하여 조건문을 걸게 되는데, 

여기에는 컬럼 명, 연산자, 상수, 산술 표현식 등을 결합하여 다양한 형태로 작성 가능하다.

 

데이터 타입 또한 문자, 숫자, 날짜 타입 모두 사용 가능하며,

숫자 타입은 상수 값 그대로 사용 가능하지만

문자와 날짜 타입의 상수 값은 작은 타옴표로 묶어서 표현해야 한다.

SELECT  [DISTINCT] *  | COLUMN..
FROM TABLE_NAME
[WHERE  CONDITION]

 

 

2. 비교 연산자

 

비교 연산자는 WHERE 절에서 문자, 숫자, 날짜의 크기나 순서를 비교하는 연산자이다.

연산자 의미
= 같다
!=, <> 같지 않다
> 크기
>= 크거나 같다
< 작다
<= 작거나 같다  

1️⃣ 숫자 비교

 

2️⃣ 문자 비교

3️⃣ 날짜 비교

 

3. 논리 연산자

 

WHERE 절에서 여러 개의 조건을 결합해야 하는 경우 사용할 수 있는 연산자이다.

연산자 의미
AND 모든 조건이 참일 때, 참 값을 반환
OR 모든 조건 중에서 하나가 참일 때, 참 값을 반환
NOT 조건의 결과와 반대되는 결과를 반환  

 

 

 

4. SQL 연산자

 

SQL 언어에만 제공되는 연산자로 모든 데이터 타입에 사용 가능하다.

연산자 의미
BETWEEN  A  AND  B A 와 B 사이의 값, A 이상 B 이하
IN(A, B, C, ... N) 괄호 안의 상수 값 중 하나와 일치하면 참을 반환
LIKE 문자 패턴과 부분적으로 일치(%_) 하면 참을 반환
IS NULL NULL 이면 참  

 

1️⃣ BETWEEN A AND B

 

마치 AND 논리 연산자를 사용한 것과 같은 결과 집합을 출력할 수 있다.

AND 논리 연산자를 사용했을 때와 비교해 보면 다음과 같다.

이렇게 봐서는 큰 차이를 느낄 수 없지만,

컬럼 명이 들어간 영역에는 다른 수식이 들어갈 수 있기 때문에 그럴 때에는

반복적으로 작성해야 하는 AND 연산자에 비하여, BETWEEN 연산자가 더 유용할 수 있다.

 

2️⃣ IN(A, B, C, ... N)

 

IN 연산자로는 특정한 값을 찾고자 할 때 유용하게 활용할 수 있다.

3️⃣ LIKE 

 

LIKE 연산자는 특정 문자 패턴에 일치하는 데이터를 추출하고자 할 때 유용하게 활용할 수 있다.

% 키워드는 모든 상수 값이 오는 것을 허락하는 것이고,

_ 키워드는 글자 수를 제어한다.

 

예를 들어 '김%' 은 김 뒤에 무엇이 오든, 몇 글자가 오든 상관 없이 첫 글자가 '김'이기만 하면 검색된다.

'김_'은 김 뒤에 한 글자만 있는 데이터를 검색하게 된다.

📌 LIKE 연산자 사용시 주의 사항

만약 찾고자 하는 문자열 중 % 나 _ 키워드가 있으면 어떻게 처리해야 할까?

해당 키워드를 단순 상수로 인식하게 하는 것을 바로 ESCAPE 옵션이라고 한다.

이 옵션은 키워드 앞에 \ 표시를 추가하면 된다.

예를 들어 '김\_%'이라고 조건을 걸면 '김_' 을 포함하는 문자를 찾겠다는 의미가 된다.