[DB/Oracle] 02. 의사컬럼
2021. 8. 28. 01:05
의사컬럼이란?
의사컬럼이란 테이블의 컬럼처럼 동작하지만 실제로 테이블에 저장되지는 않는 컬럼을 말한다.
SELECT문에서는 사용할 수 있지만 INSERT, UPDATE, DELETE 할 수는 없다.
1. ROWNUM
ROWNUM은 쿼리에서 반환되는 각 로우들에 대한 순서 값을 나타내는 의사컬럼이다.
[입력]
SELECT ROWNUM, employee_id
FROM employees;
[출력]
ROWNUM | EMPLOYEE_ID |
1 | 100 |
2 | 101 |
3 | 102 |
2. ROWID
테이블에 데이터가 많으면 SELECT만 해도 결과가 나올 때까지 시간이 많이 소요된다.
이 떄 ROWNUM을 사용해서 특정 범위만 추출한다면 시간을 절약할 수 있다.
ROWID는 테이블에 저장된 각 로우가 저장된 주소 값을 가리키는 의사컬럼이다. 각 로우를 식별하는 값이므로 ROWID는 유일한 값을 가진다.
[입력]
SELECT ROWNUM, employee_id, ROWID
FROM employees
WHERE ROWNUM < 5;
[출력]
ROWNUM | EMPLOYEE_ID | ROWID |
1 | 100 | AAASNVAAGAAAACDAAJ |
2 | 101 | AAASNVAAGAAAACDAAK |
3 | 102 | AAASNVAAGAAAACDAAL |
4 | 103 | AAASNVAAGAAAACDAAM |
'CS > Database' 카테고리의 다른 글
[Database] 관계형 데이터베이스의 이상 현상과 정규화 (0) | 2021.12.17 |
---|---|
[Database] 트랜잭션과 ACID & 트랜잭션 격리 수준과 데드락 (0) | 2021.12.17 |
[Database] Database, DBMS, RDB, NoSQL (0) | 2021.12.15 |
[DB/Oracle] 01. SELECT문 (0) | 2021.08.28 |
[Oracle/sql] 프로그래머스 sql문제 정리 (0) | 2021.08.04 |