레이블이 #유니크인덱스인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #유니크인덱스인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 14일 일요일

오라클 INDEX, 고유/비고유 인덱스(Unique/Non Unique Index)

 

오라클 INDEX, 고유/비고유 인덱스(Unique/Non Unique Index)


고유 인덱스unique indexes는 칼럼의 값들이 유일한 경우에 만들 수 있는 인덱스이고, 비고유 인덱스non unique indexes는 칼럼 값에 중복된 값이 있는 경우 만드는 인덱스 입니다.



다음 실습에서 고유/비고유 인덱스를 생성해 보겠습니다.

실습


이번 실습에서 생성한 두개의 인덱스를 삭제하고 고유 인덱스를 생성해 보겠습니다. DROP INDEX 명령으로 인덱스를 삭제할 수 있습니다.


IDX_ENAME, IDX_ENAME_SAL 2개의 인덱스를 삭제 하세요.


DROP  INDEX IDX_EMP_ENAME;                  

DROP  INDEX IDX_EMP_ENAME_SAL;


<실행결과>

Index IDX_EMP_ENAME이(가) 삭제되었습니다.

Index IDX_EMP_ENAME_SAL이(가) 삭제되었습니다.


EMP 테이블의 ename 컬럼에 고유인덱스를 생성하세요.


CREATE UNIQUE INDEX IDX_EMP_ENAME ON EMP(ENAME);


<실행결과>

INDEX IDX_EMP_ENAME이(가) 생성되었습니다.


현재 EMP 테이블의 ename 컬럼은 중복되는 값이 없어서 인덱스가 잘 생성 되었습니다. 만약 중복되는 값이 있다면 어떻게 될까요? 다음 실습에서 확인 하세요.


EMP 테이블에 이미 존재하는 사원인 “SMITH” 라는 이름으로 데이터를 입력하고 고유인덱스를 생성하세요. 먼저 이전에 생성한 IDX_EMP_ENAME 인덱스를 삭제하세요.


DROP INDEX IDX_EMP_ENAME;

INSERT INTO EMP(EMPNO, ENAME) VALUES (9999, 'SMITH');

CREATE UNIQUE INDEX IDX_EMP_ENAME ON EMP(ENAME);


<실행결과>

ORA-01452: 중복 키가 있습니다. 유일한 인덱스를 작성할 수 없습니다.


“SMITH”라는 이름의 사원이 중복되므로고유 인덱스를 생성 할 수 없습니다.

실습


비고유 인덱스를 생성해 보겠습니다.


EMP 테이블에서 job 칼럼에 대해 비고유인덱스(Non Unique Index)를 생성 하세요.


CREATE INDEX IDX_EMP_JOB ON EMP(JOB);


<실행결과>

Index IDX_EMP_JOB이(가) 생성되었습니다.


일반적으로 오라클의 CREATE INDEX 구문은 중복되는 값이 있더라고 인덱스를 생성하므로 대부분의 인덱스는 비고유 인덱스 입니다. 주민등록번호 처럼 값이 중복되지 않음을 확신 할 수 있는 컬럼에 대해 고유 인덱스를 생성해야 합니다.

 

#인덱스, #오라클인덱스, #고유인덱스, #유니크인덱스, #비고유인덱스, #오라클강좌, #오라클, #ORACLE​

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...