의사컬럼이란 테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지 않는 컬럼을 말한다 SELECT 문에서는 의사컬럼을 사용할수 있지만, 의사컬럼 값을 INSERT , UPDATE , DELETE 할수 없다. NEXTVAL , CURRVAL 도 의사컬럼의 일종이다. 대표적인 의사컬럼의 종류를 열거하면 다음과 같다.
CONNECT_BY_ISCYCLE, CONNECT_BY_ISLEAF,LEVEL
계층형 쿼리에서 사용하는 의사컬럼이다.
NEXTVAL , CURRVAL
시퀀스에서 사용하는 의사컬럼이다.
ROWNUM,ROWID
ROWNUM은 쿼리에서 반환되는 각 로우들에 대한 순서 값으 나타내는 의사컬럼이다.
SELECT ROWNUM , EMPLOYEE_ID
FROM EMPLOYEES;
테이블에 데이터가 많으면 SELECT 만 하더라도 결과가 나올 때 까지 시간이 만이 소요된다. 예를 들어 sales 테이블에 어떤 컬럼이 있는지 보고 싶어 "SELECT * FROM EMPLOYEES" 문을 실행하면 전체 로우가 반환되며 결과를 보기까지 시간이 오래걸린다 이때 ROWNUM 이라는 의사 컬럼을 사용하면 매우 편리하다.
SELECT ROWNUM , EMPLOYEE_ID
FROM EMPLOYEES
WHERE ROWNUM < 10;
ROWID는 테이블에 저장된 각 로우가 저장된 주소값을 가리키는 의사컬럼이다. 각 로우를 식별하는 값이므로 ROWID는 유일한 값을 가진다.
b-tree 인덱스는 테이블에서 인덱스 키로 잡혀 있는 컬럼과 해당 테이브 로우를 찾아가기 위한 주소 정보가 있다고 설명했는데, 이 주소 정보가 바로 ROWI다 이 외에도 COLUMN_VALUE , OBJECT_ID, OBJECT_VALUE, XMLDATA 란 의사컬럼 있다.
'DB' 카테고리의 다른 글
Oracle(PL /SQL ) 기본구조 (0) | 2020.12.23 |
---|---|
Oracle(표현식) (0) | 2020.12.23 |
Oracle(MERGE) (0) | 2020.12.23 |
Oracle (index) (0) | 2020.12.21 |
오라클 View (0) | 2020.12.21 |