반응형
1. 가상 테이블
- 트랜잭션이 끝나거나 세션이 끝나는 시점에 초기화된다.
- 다른 사용자와 테이블 공유가 불가능하다.
- ON COMMIT DELETE ROWS : 커밋되면 모두 삭제되는 옵션
- ON COMMIT PRESERVE ROWS : 세션이 종료되어야 테이블의 데이터가 삭제
CREATE GLOBAL TEMPORARY TABLE TEMP01
(
NO NUMBER,
NAME VARCHAR2(10)
)
ON COMMIT DELETE ROWS;
2. 테이블 모든 컬럼 복사해서 생성하기
CREATE TABLE DEPT3 AS SELECT *FROM DEPT2;
3. 테이블 특정 컬럼 복사해서 생성하기
CREATE TABLE DEPT4 AS SELECT DCODE, DNAME FROM DEPT2;
4. 테이블 구조만 가져오고 데이터 없이 생성하기
CREATE TABLE DEPT5 AS SELECT * FROM DEPT2 WHERE 1=2;
5. 가상 컬럼을 갖고 있는 테이블 생성
- 가상 컬럼에서는 사용자가 데이터를 입력할 수 없다.
- 제약 조건과 인덱스를 만들 수 있다.
- 인덱스는 FUNCTION BASED INDEX로 생성된다.
CREATE TABLE VT001
(
NO1 NUMBER,
NO2 NUMBER,
NO NUMBER GENERATED ALWAYS AS (NO1 + NO2) VIRTUAL
)
6. 테이블에서 가상 컬럼 내역 조회
SELECT COLUMN_NAME, DATA_TYPE, DATA_DEFAULT FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'VT001' ORDER BY COLUMN_ID;
7. 조건절을 활용한 가상 컬럼 생성
CREATE TABLE PANMAE10
(
NO NUMBER,
PCODE CHAR(4),
PDATE CHAR(8),
PQTY NUMBER,
PBUNGI NUMBER(1) GENERATED ALWAYS AS
(
CASE
WHEN SUBSTR(PDATE, 5, 2) IN ('01', '02', '03') THEN 1
WHEN SUBSTR(PDATE, 5, 2) IN ('04', '05', '06') THEN 2
WHEN SUBSTR(PDATE, 5, 2) IN ('07', '08', '09') THEN 3
ELSE 4
END
) VIRTUAL
)
반응형
'면접 - 데이터베이스' 카테고리의 다른 글
개발자 면접 질문 - 저장 프로시저(Stored Procedure) (0) | 2020.12.04 |
---|---|
개발자 면접 질문 - MaxActive보다 MaxIdle이 적을 경우 (0) | 2020.12.04 |
DB Constraint(데이터베이스 제약 조건) (0) | 2020.07.31 |
DB View (데이터베이스 뷰) (0) | 2020.07.31 |
DB index(데이터베이스 인덱스) (0) | 2020.07.31 |