Ⅰ. View
* 하나 이상의 Base Table(찐테이블)을 기반으로 생성은 되었으나 물리적으로 존재하지 않음(폰테이블).
* Data Dictionary에 Select 구문 형태로 정의만 되어 있는 가상의 논리적인 테이블.
1. 뷰 생성 및 수정(create/create or replace)
CREATE VIEW empvu80 AS
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
CREATE OR REPLACE VIEW dept_sum_vu (name, minsal, maxsal, avgsal) AS
SELECT d.department_name, MIN(e.salary), MAX(e.salary), AVG(e.salary)
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
GROUP BY d.department_name;
2. 뷰 사용 - 테이블과 동일함
* 뷰를 통한 insert, update, delete 가능 → 결국 Base Table의 Data가 조작되어짐.
SQL> DESC dept_sum_vu
SQL> SELECT * FROM dept_sum_vu;
3. 뷰 삭제
DROP VIEW empvu90;
Ⅱ. Sequence
* 자동으로 고유한 번호를 반환해 주는 번호생성기와 같은 Object.
1. 시퀀스 생성(create sequence)
2. 시퀀스 사용
가. 시퀀스명.NEXTVAL : 사용 가능한 다음 시퀀스값 반환.
나. 시권스명.CURRVAL : 현재 시퀀스값, 즉 마지막 시퀀스값 반환.
3. 시퀀스 수정(alter sequence)
* 시퀀스 간격, 최대값, 최소값, Cycle 옵션, Cache 옵션 변경 가능.
* 시퀀스 시작값 변경 불가(start with N)
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999
NOCACHE
NOCYCLE;
4. 시퀀스 삭제(drop sequence)
DROP SEQUENCE dept_deptid_seq;
Ⅲ. Index
* Oracle 서버에서 포인터를 사용하여 행의 검색 속도를 높이기 위해 사용하는 Object.
* Oracle 서버가 자동으로 사용하고 유지 관리함.
* WHERE절이나 JOIN조건에서 자주 사용되는 컬럼인 경우 인덱스 생성 시 성능에 도움이 됨.
* 테이블이 작거나 자주 갱신되는 컬럼 또는 자주 사용하지 않는 컬럼에는 인덱스 생성 권장하지 않음.
1. 인덱스 생성
가. 자동생성
* Primary key 또는 Unique 제약조건이 정의된 컬럼에 자동 생성됨.
나. 수동생성
CREATE INDEX emp_last_name_idx
ON employees(last_name);
2. 인덱스 삭제
DROP INDEX emp_last_name_idx;
Ⅳ. Synonym
* 객체에 다른 이름을 부여해 주는 Object.
1. 동의어 생성
2. 동의어 삭제
출처 : 아이티윌 부산교육센터 Oracle Database 12c : 실습가이드북
반응형
'개발(Web) > DB' 카테고리의 다른 글
[Oracle] 데이터 충돌 (0) | 2020.09.22 |
---|---|
[Oracle] DB User 관리하기 (0) | 2020.09.21 |
[Oracle] 데이터정의어(DDL) - Table 연습문제 (0) | 2020.07.28 |
[Oracle] 데이터정의어(DDL) - Table (0) | 2020.07.21 |
[Oracle] Manipulating Data (0) | 2020.07.17 |