VIEW
하나 이상의 실제테이블로부터 새로운 가상 테이블을 만들어 제공함
실제테이블의 데이터를 보여줄뿐, 데이터를 가지고 있는 것은 아님
실제테이블의 데이터를 제한적으로 허용
resource 롤에 create view는 포함되지 않음(별도로 부여 받아야함)
view에 대해서 DML이 제한적으로 가능하지만,
가상데이터가 포함되어 있거나, group by/그룹함수등을 이용한 경우는 불가능함
create view view_emp
as
select emp_id, emp_name, email, phone
from emp_test1; --여기의 데이터가 바뀌면 아래의 view_emp에도 그대로 반영됨
--테이블처럼 사용가능
select *
from view_emp;
SEQUENCE
정수값을 순차적으로 발급해주는 객체
create sequence 시퀀스명
[start with 숫자] -- 시작값 기본값1
[increment by 숫자] -- 증가값 기본값1
[maxvalue 숫자| nomaxvalue] --최대값
[minvalue 숫자| nominvalue] --최소값
[cycle | nocycle] --순환여부, 최대값/최소값 도달시 순환(cycle), 에러(nocycle)→기본값
[cache 숫자 | nocache] --캐싱 메모리에서 숫자관리 여부. 기본값 cache 20
create sequence seq_tbl_seq_test
start with 1
increment by 1
nominvalue
nomaxvalue
nocycle
cache 20;
--간단 사용 예제
create sequence seq_test;
insert into test
values(seq_test.nextval, '권정렬');
INDEX
색인
sql명령문의 처리속도 향상을 위해서 컬럼에 대해 생성하는 오라클 객체
key-value형식으로 데이터 보관
key-value : key 컬럼값, value에는 행이 저장된 주소값 보관
PK, UQ 제약조건이 걸린 컬럼은 자동으로 인덱스에 등록됨
어떤 컬럼을 인덱스로 사용할 것인가?(인덱스 - 컬럼 값, 주소 - value)
선택도가 좋은 컬럼을 선정해서 인덱스로 활용할 것
중복이 최소한인 컬럼
where 조건절에 자주 사용되는 컬럼이 좋음
조인 조건절에 자주 사용되는 컬럼이 좋음
한 번 입력 후엔 데이터 변경이 없는 컬럼이 좋음
장점
-검색속도가 무척 빨라짐
-시스템에 걸리는 부하를 줄일 수 있음
단점
-인덱스 객체를 위한 추가 저장공간이 필요함. 생성/수정/삭제하는 시간이 매번 소요됨
create index idx_employee_emp_name
on employee(emp_name);
인덱스 사용시 주의사항
① 인덱스 컬럼의 값을 변형하는 경우(인덱스 사용 X)
② null 여부 비교 연산 하는 경우
③ not 비교연산 하는 경우
④ 인덱스 컬럼의 데이터와 다른 자료형을 비교하는 경우
'프로그래밍 > SQL' 카테고리의 다른 글
05.29(Trigger) (0) | 2020.05.29 |
---|---|
05.28(PL/SQL) (0) | 2020.05.28 |
05.26(DCL과 TCL 명령어, DD) (0) | 2020.05.26 |
05.25(DML, DDL의 명령어와 제약조건) (0) | 2020.05.25 |
05.22(top-n분석, window함수) (0) | 2020.05.22 |