기본 키와 고유 인덱스의 차이점
-- 차이점
기본 키는 제약 조건이고 고유 인덱스는 인덱스입니다. 둘은 본질적으로 다릅니다.
기본 키가 생성된 후에는 고유 인덱스가 포함되어야 합니다. 고유 인덱스가 반드시 기본 키일 필요는 없습니다.
고유 인덱스 열은 null 값을 허용하지만 기본 키 열은 null 값을 허용하지 않습니다.
기본 키 열이 생성되면 기본값은 null 값 + 고유 인덱스입니다.
기본 키는 다른 테이블에서 외래 키로 참조될 수 있지만 고유 인덱스는 참조할 수 없습니다.
테이블은 기본 키를 최대 1개만 생성할 수 있지만 고유 인덱스는 여러 개 생성할 수 있습니다.
기본 키는 자동 증가 열, ID 번호 등과 같이 변경하기 쉽지 않은 고유 식별자에 더 적합합니다.
RBO 모드에서는 기본 키의 실행 계획 우선 순위가 고유 인덱스의 우선 순위보다 높습니다. 둘 다 쿼리 속도를 향상시킬 수 있습니다.
--기본 키와 고유 인덱스만 포함하는 테이블 생성
CREATE TABLE test (PrimaryKey VARCHAR2(20), UniqueKey VARCHAR2(20) );
--다른 구문을 사용하여 기본 키와 고유 인덱스를 각각 생성
ALTER TABLE test ADD CONSTRAINT test_PrimaryKey PRIMARY KEY (PrimaryKey); CREATE UNIQUE INDEX test_UniqueKey ON test (UniqueKey);
--USER_INDEXES
SELECT table_name,table_type,index_name,index_type,uniqueness FROM USER_INDEXES WHERE TABLE_NAME='TEST';
SELECT table_name,index_name,column_name,column_position FROM USER_IND_COLUMNS WHERE TABLE_NAME='TEST';
SELECT table_name,constraint_name,constraint_type FROM USER_CONSTRAINTS WHERE TABLE_NAME='TEST';
SELECT table_name,constraint_name,column_name,position FROM USER_CONS_COLUMNS WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME='TEST');
ALTER TABLE test MODIFY UniqueKey NOT NULL;
SELECT table_name,constraint_name,constraint_type
FROM USER_CONSTRAINTS WHERE TABLE_NAME='TEST'
SELECT table_name,constraint_name,column_name,position FROM USER_CONS_COLUMNS WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME='TEST')
위 내용은 기본 키와 고유 인덱스의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!