티스토리 뷰

IT/DB

[ORACLE] SQL의 연산자(Operator) 정리

preamtree 2017. 1. 16. 20:45
반응형

 WHERE문은 SQL의 SELECT, UPDATE, DELETE문에서 쓰인다. 오늘은 SELECT문에서 자주 쓰이는 WHERE 조건에 대해 포스팅해보려고한다. 오라클에서는 다양한 연산자를 제공하는데, 분류하자면 아래와 같다.


1. 수식연산자 (예: +, -, *, /)


2. 문자연산자 (예: ||)


3. 논리연산자 (예: =,<,>,<> 등)


4. 집합연산자 (예: UNION, INTERSECT 등)


5. 계층형 쿼리연산자


1. 수식연산자

 더하기, 빼기, 곱하기, 나누기이다. +와 -의 경우, 양수와 음수를 나타낼 때 사용하기도 한다. 당연히 조건식에 직접적으로는 잘 사용되지 않는다. (+, -, *, / 로는 논리적 판단을 할 수가 없음)



2. 문자연산자

 ||이 있는데, 두 문자를 연결하는 연산을 수행한다. 사실, WHERE문에 쓰이기보다는 SELECT~FROM~WHERE에서 SELECT 쪽에 많이 쓰인다. 사용 예는 아래와 같다.


SELECT student_id || ',' || student_name AS STUDENT_INFO
FROM student
WHERE student_age > 20;

이 구문에 대한 결과 예는 아래와 같다.



1
2
3
4
5
6
STUDENT_INFO
---------------
00001,홍길동
00002,이순신
00003,신사임당
00004,임꺽정
cs


▶SQL에서 '같지 않다'는 여러 형태로 표현할 수 있다.

 


3. 논리연산자

 WHERE절에서 정말 많이 쓰인다. 부등호(<, >, >=, <=)는 작다, 크다, 크거나같다, 작거나같다 등을 의미한다. 또한 <>, !=, ^= 등의 연산자도 있는데, 3가지 모두 '같지 않다'를 의미한다. (비동등연산자) 사용 예는 아래와 같다.


SELECT student_id, grade
FROM TEST_INFO
WHERE grade > 60

논리연산자는 문자열에도 사용할 수 있다.


SELECT city_name, city_population
FROM CITY_INFO
WHERE city_name = 'SEOUL'


4. 집합연산자
 SELECT문에 의해 실행된 결과를 대상으로 연산을 수행하는 연산자를 의미한다. (SELECT 문의 결과를 하나의 집합으로 생각하면 편하다.) 집합연산자에는 UNION, UNION ALL, INTERSECT, MINUS가 있다. 먼저, 사용 예는 아래와 같다.

SELECT student
FROM student_grade
WHERE grade > 30
UNION
SELECT student
FROM student_info
WHERE age < 17


 위 예처럼 두 개의 SELECT문 사이에 사용하면 된다. UNION의 경우, 합집합 연산과 동일하다. UNION ALL은 UNION의 결과에 중복 항목도 모두 포함하는 연산이다. INTERSECT는 교집합 연산과 동일하며, MINUS는 차집합 연산과 동일하다. (MINUS의 경우, 먼저 위치한 SELECT문이 차집합 연산의 기준이 된다.)





-끝-





출처 및 참고

홍형경, 『오라클 SQL과 PL/SQL을 다루는 기술』, 길벗(2015)

http://makand.tistory.com/entry/SQL-UNION-%EA%B5%AC%EB%AC%B8




«   2021/12   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
글 보관함
Total
759,125
Today
15
Yesterday
253