인덱스(index)의 형식_
create [unique] index 인덱스명(테이블명_필드명_idx) on 적용테이블명(필드명)
~on 적용 테이블명 (필드명1, 필드명2) -> 복합키(테이블 설계 문제, 정규화) = 해당 구문은 추후 심화과정으로 들어간후 추가적으로 기록하겠다. 지금의 레벨에서 이해하기 쉽지않고 오히려 복잡함만 추가가 될수가 있을수 있다. 우선 있다는것만 알고있으면 된다.
create index 인덱스명(테이블명_필드명_idx) -> 중복을 허용해주는 명령
우선 혹시 모르니 미리 생성해 놓은 백업 테이블로 진행한다.
인덱스를 생성해 보았다.
SQL> create index b_emp5_ename_idx on b_emp5(ename);
인덱스가 생성되었습니다.
위 명령어가 일반적인 방법으로 인덱스를 생성하는 방식이다. 이렇게 생성을 하게되면 검색시 보다 빠른 속도를 확인할 수가 있다.
형식 2 및 활용_
제약조건 -> user_constraints, 뷰 -> user_views
인덱스도있다 -> user_indexes(별칭 i로 설정)(uniquness 라는 필드가 있다.), => 해당 구문은 인덱스 이름, 고유 정보가 필요.
user_ind_column(별칭 c로 설정) => 해당 구문은 인덱스 이름, 테이블, 필드명이 필요. 그리고 명령어가 길기에 별칭 사용이 가능하다.
index_name(인덱스이름)
위 두개를 사용하기엔 조인을 미리 숙지를 하고있어야한다. 위 두개의 정보를 동시에 얻기위해선 조인문을 통해 얻을수가 있기때문이다.
조인과 인덱스를 이용하여 동적인 구문을 완성해본다면,
SQL> ed
file afiedt.buf(이)가 기록되었습니다
1 select c.index_name,c.column_name,c.column_position,i.uniqueness
2 from user_indexes i, user_ind_columns c
3* where c.index_name=i.index_name and c.table_name='&table_name'
SQL> /
table_name의 값을 입력하십시오: EMP
구 3: where c.index_name=i.index_name and c.table_name='&table_name'
신 3: where c.index_name=i.index_name and c.table_name='EMP'
INDEX_NAME
------------------------------
COLUMN_NAME
--------------------------------------------------------------------------------
COLUMN_POSITION UNIQUENES
--------------- ---------
PK_EMP
EMPNO
1 UNIQUE
방금 구문에서 동적으로 입력을 받는 설정을 하였기때문에 가능한 파일로 저장하여 추후에도 사용할수 있도록 파일로 저장해놓는것도 좋은 방법이다.
SQL> save c:\webtest\2.db\print\ind_search.txt; ==>경로는 사용자 편한 대로!
file c:\webtest\2.db\print\ind_search.txt(이)가 생성되었습니다
(필자는 중간에 upper 값을 제대로 지정하지 않아 오류가 한번 났었고, ed문을 이용 수정하였다.)
'Oracle > Index, Sequence, Synonym' 카테고리의 다른 글
데이터 베이스_ 오라클 [Sequence] 활용 2 currval, nextval (0) | 2019.07.03 |
---|---|
데이터 베이스_ 오라클 [Sequence] 활용 1 currval, nextval (0) | 2019.07.03 |
데이터 베이스_ 오라클 [Sequence] 개요 (0) | 2019.07.03 |
데이터 베이스_ 오라클 [INDEX] 활용2 인덱스 삭제 (0) | 2019.07.03 |
데이터 베이스_ 오라클 [INDEX] 개요 (0) | 2019.07.03 |
댓글