본문 바로가기
코딩 노트/Oracle SQL

[Oracle SQL] SQL 연산자 사용하여 조회 조건 확장하기

by 바크롱 2022. 2. 14.

SQL연산자는 비교 연산자보다 확장된 연산자로 사용 빈도가 매우 높은 연산자라고 할 수 있으며 BETWEEN, IN, LIKE, IS NULL이 여기에 해당합니다.

BETWEEN A AND B

두 값의 범위에 해당하는 행 출력을 위해 사용합니다.

SELECT *
FROM employees
WHERE salary BETWEEN 10000 AND 15000;

salary 값이 10000에서 15000 사이만 가져오고 싶은 경우 위와 같은 쿼리를 이용해서 데이터를 조회할 수 있습니다. BETWEEN 구문은 비교연산자인 부등호(>=)를 두 개로 나눠서 사용하는 것과 동일한 결과를 가져올 수 있습니다.

 

 

IN (list)

조회하려고 하는 데이터 조건 값이 여러개 인 경우 사용합니다. 하나의 컬럼에 대해서 여러개의 값에 해당하는 데이터를 한 번에 가져오고 싶을 때 사용합니다.

SELECT *
FROM employees
WHERE salary IN (10000, 12000, 17000);

salary 값이 10000, 12000, 17000에 해당하는 데이터만 가져온 것을 확인할 수 있습니다.

 

 

LIKE

LIKE는 조회 조건 값의 일부를 활용하여 조회하고 싶을 때 사용합니다.

 

LIKE에서는 %와 _와 같은 기호 연산자를 함께 사용합니다.

 

%는 '모든 문자'라는 의미이고, _는 '한 글자' 라는 의미 입니다.

 

예를 들어, LIKE '%AB%' 로 검색할 경우 'AB'라는 단어가 들어간 모든 정보를 검색하게 됩니다. 그리고 'AB' 단어 앞 뒤로는 어떤 단어가 오더라도 상관 없습니다.

 

반면 LIKE 'AB%' 조건으로 검색한다면 'AB'로 시작하는 데이터를 조건으로 검색하며, LIKE '%AB' 조건으로 검색한다면 'AB'로 끝나는 데이터를 조건으로 검색하게 됩니다.

 

또한 LIKE 'AB_' 조건으로 검색한다면 'AB'로 시작하면서 뒤에 1글자만 더 오는 경우, LIKE 'AB__' 조건으로 검색한다면 'AB'로 시작하면서 뒤에 2글자가 더 오는 경우 등으로 조건을 확장할 수 있습니다.

 

SELECT *
FROM employees
WHERE job_id LIKE 'SA%';

위와 같이 조회할 경우 job_id가 SA'로 시작하는 값들을 모두 불러온 것을 확인할 수 있습니다.

 

 

IS NULL

IS NULL은 데이터 값이 null 인 데이터를 조회하려고 할 때 사용합니다. null은 데이터 값이 정의되지 않은 값으로 0 또는 공백 데이터와는 다른 값인 '존재하지 않는 값' 이라고 할 수 있습니다.

SELECT *
FROM employees
WHERE manager_id IS NULL;

manager_id 컬럼에 해당하는 값이 존재하지 않는 데이터를 조회해본 결과는 위와 같습니다. 추가적으로 null이 아닌 값들만을 조회하고 싶다면 NULL 앞에 NOT을 붙인 IS NOT NULL을 사용할 수 있습니다.

 

댓글