본문 바로가기

DB

Oracle(의사컬럼)

반응형

의사컬럼이란 테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지 않는 컬럼을 말한다 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