[Oracle] 연산자 종류, 연산자 우선순위, 문자열 합치기

연산자 종류

오라클에는 산술, 연결, 논리, 비교연산자 등이 존재하여 다양한 연산을 할 수 있다.

 

각각에 대해 알아보자.

 

산술연산자

유형 설명
() 연산자 우선순위 변경
+ 더하기
- 빼기
* 곱하기
/ 나누기

 

산술 연산자는 말 그대로 사칙연산을 포함한 산술을 할 수 있는 연산자이다.

주로 NUMBER / DATE 자료형에 적용한다. VARCHAR2 자료형에 숫자가 입력되어 있는 경우도 적용 가능하다.

 

예시

-- 결과 : 500
SELECT 100*10/2
FROM DUAL
-- 직원 평균연령 구하기
SELECT AGE/COUNT(*)
FROM EMPLOYEE;

 

 

연결 연산자

유형 설명
|| 문자와 문자를 연결
CONCAT 문자와 문자를 연결

연결 연산자는 문자와 문자를 연결할 때 사용한다.

'||'와 CONCAT을 사용할 수 있다.

 

예시

-- 나이 : 16
SELECT '나이 : ' || AGE AS "나이"
FROM EMPLOYEE
-- 전화번호 : 010-1234-5678
SELECT CONCAT('전화번호 : ', TLP_NO) AS "전화번호"
FROM EMPLOYEE

 

논리연산자

유형 설명
AND 여러 조건이 모두 TRUE인 경우만 TRUE
OR 여러 조건 중 하나만 TRUE여도 TRUE
NOT 조건에 대한 반대 값 반환

논리 연산자는 여러 조건을 논리적으로 연결하는 데 사용한다.

 

예시

--21번 부서의 20살 이상인 직원의 이름
SELECT EMP_NAME
FROM EMPLOYEE
WHERE DEPT_ID = '21'
AND AGE > 20;
-- 21번 부서이거나 20살 이상인 직원의 이름
SELECT EMP_NAME
FROM EMPLOYEE
WHERE DEPT_ID = '21'
OR AGE >= 20

 

 

비교 연산자

유형 설명
= 같다
>,< 크다 / 작다
>= , <= 크거나 같다 / 작거나 같다
<>, !=, ^=  같지 않다
BETWEEN [1] AND [2] [1] ~ [2] 사이에 포함되는지, [1]과 [2] 포함
LIKE / NOT LIKE 문자 패턴 비교
IS NULL / IS NOT NULL NULL 여부 비교
IN / NOT IN 비교 값 목록에 포함되는지 여부 비교

 

비교 연산자는 표현식 사이의 관계를 비교하기 위해 사용된다.

비교 결과는 논리결과 TRUE, FALSE, NULL 중 하나가 된다.

 

이때 비교하는 컬럼값 혹은 표현식은 동일한 데이터 타입이어야 한다.

 

 

LIKE 와일드 카드

  • % : 0개 이상의 어떤 문자
  • _ : 1개의 단일 문자

예를 들어 LIKE '김%' 이면 '김오중', '김태희', '김경' 등 김으로 시작하는 어떠한 단어도 해당한다.

반면 LIKE '김_' 이면 '김경'처럼 김 이후 1개의 단일 문자만 있는 단어만 해당한다.

 

 

예시

1. BETWEEN [1] AND [2]

-- 20살 이상 30살 이하인 직원의 이름
SELECT EMP_NAME
FROM EMPLOYEE
WHERE AGE BETWEEN 20 AND 30

 

2. LIKE

-- 성이 '김'씨인 직원의 이름
SELECT EMP_NAME
FROM EMPLOYEE
WHERE EMP_NAME LIKE '김%'

 

3. IN

-- 20살, 24살, 26살 직원의 아이디
SELECT EMP_ID
FROM EMPLOYEE
WHERE AGE IN (20,24,26)

 

4. IS NULL

-- 주소가 NULL인 직원의 이름
SELECT EMP_NAME
FROM EMPLOYEE
WHERE ADDRESS IS NULL;

 

 

연산자 우선순위

우선순위 설명
0 ()
1 산술 연산자(곱셈, 나눗셈이 덧셈 뺄셈 보다 먼저)
2 연결 연산자 
3 비교 연산자
4 IS (NOT) NULL, (NOT) LIKE, (NOT) IN
5 (NOT) BETWEEN AND
6 논리 연산자 - NOT
7 논리 연산자 - AND
8 논리 연산자 - OR

 

반응형

댓글

Designed by JB FACTORY