연산자(Operator)
WHERE 절에서 사용할 수 있는 연산자의 종류
비교 연산자 | 비교 연산자는 where절에서 숫자, 문자, 날짜의 크기나 순서를 비교하는 연산자이다. | ||||||||
논리 연산자 | WHERE 절에서 여러 개의 조건을 결합할 경우 | ||||||||
SQL 연산자 | 비교연산자와 논리 연산자는 프로그래밍 언어의 IF 문에서도 지원되는 연산자이지만, SQL 연산자는 SQL 언어에서만 제공하는 편리한 기능이다. SQL 연산자는 BETWEEN a AND b, IN, LIKE, IS NULL 연산자가 있으며, 모든 데이터 타입에 대해 사용할 수 있다. | ||||||||
NULL 연산자 | NULL은 미확인 값이나 아직 적용되지 않은 값을 의미하는 연산자이다 한가지 주의할 점은 NULL을 비교하기 위해서 '=' 연산자를 사용하지 않고 대신 'IS NULL' 연산자를 사용한다. 만약 '=' 연산자를 사용하면 컬럼 값 중에 'NULL'이라는 문자열 데이터를 가진 행을 검색하므로 주의해야 한다. 그리고 NULL이 아닌 행을 검색할 때는 IS NOT NULL 연산자를 사용한다. | ||||||||
SET(집합) 연산자 | SQL에서 제공하는 집합 연산자는 합집합(UNION, UNION ALL), 차집합(MINUS), 교집합(INTERSECT) 연산자가 있다. 한가지 주의할 점은 수학에서는 두 집합을 구성하는 원소의 종류가 서로 다르더라도 집합 연산이 가능하지만, SQL 문에서 집합 연산자를 사용하기 위해서는 집합 연산의 대상이 되는 두 테이블의 컬럼 수가 같고, 대응되는 컬럼끼리 데이터 타입이 동일해야 한다 컬럼 이름은 달라도 상관 없으며, 집합 연산의 결과로 출력되는 컬럼의 이름은 첫 번째 SELECT 절의 컬럼 이름을 따른다.
| ||||||||
multiset 연산자 | 두 개의 nested table을 하나의 nested table로 combine하는 것
| ||||||||
계층적 질의 연산자 | PRIOR, CONNECT_BY_ROOT가 계층적 질의 연산자임 | ||||||||
연결 연산자(¦¦) | 합성(concatenation) 연산자 '¦¦'는 하나의 컬럼과 다른 컬럼, 산술 표현식 또는 상수 값과 연결하여 하나의 컬럼처럼 출력할 경우에 사용하는 연산자이다. | ||||||||
산술 연산자 (가감승제) | 비교되는 컬럼을 *, /, +, -와 같은 산술 표현식을 사용할 수 있다. 산술연산자의 우선순위는 곱셈, 나눗셈, 덧셈, 뺄셈과 같으며, 동일 우선순위는 왼쪽에서 오른쪽으로 계산한다. | ||||||||
사용자 정의 연산자 | CREATE OPERATOR 문으로 연산자를 생성할 수 있음 | ||||||||
연산자 우선 순위 | WHERE 절에서 두 개 이상의 연산자를 결합하여 조건절을 구성할 수 있다. 결과 값은 연산자의 우선 순위에 따라 결정된다. 연산 순서는 우선 순위가 높은 순에서 낮은 순으로 수행하고 동일한 우선 순위를 가진 연산자는 왼쪽에서 오른쪽으로 수행한다. 그리고 괄호를 사용하여 연산자의 우선 순위를 변경할 수 있다. | ||||||||
floating-point condition | IS [NOT] NAN, IS [NOT] INFINITE | ||||||||
'Oracle' 카테고리의 다른 글
오라클 총정리 파일 (0) | 2012.04.24 |
---|---|
연습문제 (0) | 2012.04.09 |
SQLPuls 기본 명령어 (0) | 2012.04.07 |