본문 바로가기
DBMS/Oracle SQL

DBMS SQL 연산자 BETWEEN, IN, ANY, ALL 등등

by 따`ddah 2024. 2. 23.

1. 연산자 (Operator)

- 예시) 데이터를 조회할 때 SALARY에서 1,000원씩 빼서 조회하겠다 할 때 사용

 

  연산자 종류 :       1. 연결 연산자        2. 산술 연산자      3. 관계 연산자      4. SQL 연산자      5. 논리 연산자

 

 

 2. SQL 연산자

- SQL에서만 존재하는 연산자

 

- SQL 연산자 종류

1.  BETWEEN a AND b       2. IN(a,b,c)      3. LIKE _/%    4. IS (NOT) NULL      5. ANY(a,b,c)      6. ALL(a,b,c)

 

1. BETWEEN a AND b
- a 이상 b 이하인 조건
2. IN(a,b,c)
- a 또는 b 또는 c 일때 조건
 3. LIKE
- 문자열 패턴을 검색할 때 연산자
- 문자열이 데이터에 부분일치하는지를 검사한다. 

- %(퍼센트) : 부분일치하는 데이터 검색
D% : D로 시작하는 데이터
%라면% : 앞뒤 무슨 글자이던지 라면이라는 문자가 있는 데이터
%e : e로 끝나는 데이터

- _(언더바) : 언더바 갯수에 따라 몇자리 글자인지를 검색한다. 
_ _ _ _ e : 5자리인데 마지막 글자가 e로 끝나는 데이터 검색
4. IS NULL / IS NOT NULL
- NULL 값을 검사할 때 사용하는 연산자

IS NULL : NULL값이 맞는지 검사할떄 사용
IS NOT NULL : NULL값이 아닌지 검사할때 사용

- NULL이란? 데이터가 없음을 나타내는 값
5. ANY(a,b,c)
- a, b, c중 아무거나 만족하는 조건
6. ALL(a,b,c)
- a, b, c를 전부 만족하는 조건

 

 

 

 

3. 전체 쿼리문

-----------------------------------------------------------------
-- SQL 연산자
-----------------------------------------------------------------


-----------------------------------------------------------------
-- 1. BETWEEN A AND B
-----------------------------------------------------------------
-- EMPLOYEES 테이블에서 SALARY가 10000이상 12000이하인 이름,성,봉급 조회
SELECT
	FIRST_NAME,
	LAST_NAME,
	SALARY
FROM
	EMPLOYEES
WHERE
	SALARY BETWEEN 10000 AND 12000;


-----------------------------------------------------------------
-- 2. IN(A,B,C)
-----------------------------------------------------------------
-- 봉급이 10000 또는 11000 또는 12000인 직원만 조회
SELECT
	FIRST_NAME,
	LAST_NAME,
	SALARY
FROM
	EMPLOYEES
WHERE
	SALARY IN(10000,11000,12000);


-----------------------------------------------------------------
-- 3. LIKE : 문자열 패턴을 검색할때 사용하는 연산자
-----------------------------------------------------------------
-- D% : D로 시작하는 아무거나 다 가져와
-- %e : e로 끝나는 아무거나 다
-- %e% : e가 들어간 아무거나 다 가져와 (자리 상관없이, 대소문자 구분)
SELECT
	FIRST_NAME
FROM
	EMPLOYEES
WHERE
	FIRST_NAME LIKE '%e%';


-- _:자리수
SELECT
	FIRST_NAME
FROM
	EMPLOYEES
WHERE
	FIRST_NAME LIKE '____e';


-----------------------------------------------------------------
-- 4. IS NULL / IS NOT NULL : NULL 값을 검사할 때 사용하는 연산자
-----------------------------------------------------------------
SELECT COMMISSION_PCT
FROM EMPLOYEES
WHERE COMMISSION_PCT IS NULL; 


-- NULL값과 다른 값들을 연산하면 결과는 무조건 NULL
SELECT NULL + 10
FROM EMPLOYEES;


-----------------------------------------------------------------
-- 5. ANY(a,b,c) : a, b, c중 아무거나 만족하는 조건
-----------------------------------------------------------------
SELECT SALARY
FROM EMPLOYEES
WHERE SALARY = ANY(10000,11000,12000)


-----------------------------------------------------------------
-- 6. ALL(a,b,c) : a, b, c 전부 만족하는 조건
-----------------------------------------------------------------
SELECT SALARY
FROM EMPLOYEES
WHERE SALARY = ALL(10000,11000,12000)


-----------------------------------------------------------------
-- [실습]
-----------------------------------------------------------------
-- 1. SALARY가 8000이상에 이름이 D로 시작하는 이름,성, 봉급 조회

SELECT
	FIRST_NAME,
	LAST_NAME,
	SALARY
FROM EMPLOYEES
WHERE 
	FIRST_NAME LIKE 'D%' AND SALARY >= 8000
	

-- 2. 보너스를 받지 않고 이름이 총 5자리수로 e로 끝나는 직원의 이름,성, 보너스 조회
SELECT
	FIRST_NAME,
	LAST_NAME,
	COMMISSION_PCT 
FROM
	EMPLOYEES
WHERE
	COMMISSION_PCT IS NULL AND FIRST_NAME LIKE '____e';

 

728x90

'DBMS > Oracle SQL' 카테고리의 다른 글

SQL 문법 종류 DML DDL DCL TCL  (0) 2024.02.24
DBMS 논리 연산자 AND OR NOT  (0) 2024.02.23
DBMS 관계 연산자 (feat. WHERE 명령문)  (0) 2024.02.23
DBMS 산술 연산자  (0) 2024.02.23
DBMS 연결 연산자  (0) 2024.02.23