티스토리 뷰
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'
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
'IT > DB' 카테고리의 다른 글
[ORACLE] 오라클 SQL 함수 간단 정리 (0) | 2017.02.27 |
---|---|
[ORACLE] SQL의 조건식 정리 (0) | 2017.02.14 |
[ORACLE] 오라클의 색인(Index) 사용 (0) | 2016.12.31 |
[ORACLE] ORACLE의 제약조건(Constraints) (0) | 2016.12.20 |
[ORACLE] 오라클의 데이터 타입(DataType) (0) | 2016.12.14 |