1. 복합 기본 키
소위 복합 기본 키는 테이블의 기본 키에 둘 이상의 필드가 포함되어 있으며 비즈니스 의미가 없는 자동 증가 ID를 기본으로 사용하지 않음을 의미합니다. 열쇠.
예:
create table test ( name varchar(19), id number, value varchar(10), primary key (name,id) )
위의 이름과 ID 필드의 조합은 테스트 테이블의 복합 기본 키입니다. 이름 필드에 중복된 이름이 있을 수 있으므로 이를 확인하려면 ID 필드를 추가해야 합니다. 고유성을 위해 일반적으로 기본 키의 필드 길이와 필드 수가 작아야 합니다.
여기서 의문이 생길 것입니다. 기본 키가 유일한 인덱스인데 왜 테이블에서 여러 개의 기본 키를 생성할 수 있습니까?
사실 "기본 키가 유일한 인덱스"라는 말은 좀 모호합니다. 예를 들어, 테이블에 ID 필드를 생성하고 이를 자동으로 확장한 후 기본 키로 설정하면 "기본 키가 유일한 인덱스"이고 ID 필드가 고유성을 보장하기 위해 자동으로 커지므로 문제가 되지 않습니다. 괜찮습니다.
이때 varchar 유형으로 다른 필드 이름을 생성하고 이를 기본 키로 설정하면 테이블의 여러 행에 동일한 이름 값을 채울 수 있다는 것을 알 수 있습니다. 기본 키는 고유합니다." 문장 "인덱스"는 무엇입니까?
그래서 '기본 키가 유일한 인덱스'라고 한 것은 모호합니다. "테이블에 기본 키가 하나만 있는 경우 유일한 인덱스이고, 테이블에 기본 키가 여러 개 있는 경우 이를 복합 기본 키라고 합니다. 복합 기본 키 통합은 고유 인덱스를 보장합니다. ".
자체 증가 ID가 이미 고유 식별을 위한 기본 키로 사용될 수 있는 이유와 복합 기본 키가 여전히 필요한 이유는 무엇입니까? 모든 테이블에 ID 필드가 있어야 하는 것은 아니기 때문입니다. 예를 들어 학생 테이블을 작성했는데 학생을 고유하게 식별하는 ID가 없는 경우 학생의 이름, 나이, 학급이 모두 반복될 수 있습니다. 단일 필드는 고유 식별에 사용할 수 없습니다. 이때 여러 필드를 기본 키로 설정하여 복합 기본 키를 구성할 수 있습니다. 이 중 특정 기본 키 필드 값이 있으면 문제가 없습니다. 여러 레코드가 아닌 한 반복됩니다. 모든 기본 키 값이 정확히 동일하면 중복으로 간주되지 않습니다.
2. 공동 기본 키
이름에서 알 수 있듯이 공동 기본 키는 여러 기본 키를 조합하여 기본 키 조합을 형성하는 것입니다(기본 키는 원칙적으로 고유하므로 걱정하지 마십시오.
공동 기본 키의 의미: 2A 필드(또는 여러 필드, 특히 2개 필드의 조합은 나중에 사용됨)를 사용하여 레코드를 결정하고 이 두 필드가 고유하지 않음을 나타냅니다. 두 필드는 별도로 반복될 수 있습니다. 이러한 설정의 이점은 반복되는 필드에 대한 레코드 수를 확인하는 것입니다.
간단한 예:
기본 키 A와 기본 키 B는 공동 기본 키를 형성합니다.
기본 키 A와 기본 키 B의 데이터는 정확히 동일할 수 있습니다. 공용 기본 키는 기본 키로 구성됩니다. A와 기본 키 B는 고유합니다.
다음 예에서는 기본키 A의 데이터가 1이고, 기본키 B의 데이터도 1이며, 결합된 기본키는 실제로 11입니다. 이 11은 고유한 값이고, 11의 고유값은 절대 아닙니다. 다시 나타날 수 있도록 허용했습니다. (다대다 관계입니다)
기본키 A 데이터 기본키 B 데이터
1 1
2 2
3 3
기본키 A와 기본키 B의 결합 기본키 값은 최대
11
12
13
21
22
23
31
32
33
요약: 내 관점에서 복합 기본 키는 ID+이름, ID+전화 등 두 개 이상의 필드로 구성됩니다. ., 그리고 공동 기본 키는 동시에 두 테이블의 테마를 조합한 것이어야 합니다. 이것이 복합 기본 키와의 가장 큰 차이점입니다!
더 많은 관련 문제를 보려면 PHP 중국어 웹사이트를 방문하세요: mysql 비디오 튜토리얼
위 내용은 통합 기본 키와 복합 기본 키의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!