연산자(Operator)는 말그대로 연산을 수행하는 역할을 한다.
오라클에서는 다양한 연산자를 제공하고 있는데
크게 다음과 같이 분류할 수 있다.
- 수식 연산자
- 문자 연산자
- 논리 연산자
- 집합 연산자
- 계층형 쿼리 연산자
이번 글에서는 수식,문자, 논리연산자를 다루고,
추가로 집합 연산자에서 MINUS만 다뤄보고자 한다.
계층형 쿼리 연산자도 다른 설명이 많이 필요해서 별도의 글에 다루고자 한다.
수식 연산자 : +, - , *, /
연산자 | 기능 | 예시 |
+ | 단항 연산자 : 양수 / 이항 연산자 : 덧셈 | +1 은 양수 1을 의미함, 1 + 1 = 2 에서 +는 덧셈 기능 |
- | 단항 연산자 : 음수 / 이항 연산자 : 뺄셈 | -1 은 음수 -1을 의미함, 1 - 1 = 0 에서 -는 뺄셈 기능 |
* | 곱셈 | 2 * 2 = 4 |
/ | 나눗셈 | 4 / 2 = 2 |
문자 연산자 : ||
'||'는 두 문자를 붙이는 연산을 수행한다. and와 유사하다.
select id || '-' || name
from member;
위와 같이 select문을 실행하면
member 테이블에서 id 컬럼의 값과 name 컬럼의 값이 조회되는데
두 값 사이에 -가 함께 와서 출력된다. >> id-name
참고) || 입력방법
Shift + ₩표시 키(보통 엔터 위에 있음)를 두 번 누르면 된다.
논리 연산자 : > , < , >= , <= , <> , != , ^=
연산자 | 기능/예시 |
> >= |
A > B : A는 B보다 크다. A >= B : A는 B와 같거나 크다. |
< <= |
A < B : A는 B보다 작다. A <= B : A는 B와 같거나 작다. |
= | A = B : A와 B는 같다. |
<> != ^= |
A <> B A != B A ^= B : A와 B는 다르다. |
집합 연산자 : UNION, UNION ALL, INTERSECT, MINUS
UNION : 합집합
UNION ALL : 합집합(중복 포함)
INTERSECT : 교집합
MINUS : 차집합
데이터를 그룹화/집합화하여 데이터로 사용되기도 하는데
집합 연산자는 이때 이러한 집합(set)을 대상으로 연산을 수행할 때 사용한다.
집합 연산자는 Select문과 자주 쓰이는데 주로 아래의 형태와 같이 사용된다.
A집합에 대한 select문
UNION
B집합에 대한 select문
예를 들어서 A MINUS B라고 하면 A집합에는 있고 B집합에는 없는 데이터를 말한다.
mymember라는 테이블에서 점수(point)가 높은 10~15번째 튜플 출력한다고 가정해보자.
select rownum, m.*
from (select * from mymember order by point desc) m
where rownum <= 15
MINUS
select rownum, m.*
from (select * from mymember order by point desc) m
where rownum <= 9;
위 select문의 결과값은 point컬럼의 값이 10번째~15번째에 해당하는 튜플이 조회된다.
결과적으로 rownum컬럼과 mymember테이블의 모든 컬럼의 값이 함께 출력된다.
집합 연산자에 대해서는 별도의 글에 좀 더 상세히 다뤄보겠다!
'DB > SQL - Oracle' 카테고리의 다른 글
[SQL] 인덱스(INDEX)의 장점과 단점, 활용 방법 (0) | 2024.02.14 |
---|---|
[SQL] 인덱스(INDEX)의 종류와 생성, 변경, 삭제, 조회 방법 (0) | 2024.02.13 |
[SQL] DDL(데이터 정의어) - truncate (0) | 2024.02.08 |
[SQL] 기본 집계 함수 - min, max, variance, stddev (0) | 2024.02.07 |
[SQL] 기본 집계 함수 - count, sum, avg (0) | 2024.02.07 |