기본 키와 ID의 차이점은 무엇입니까?
SQL Server db에서 기본 키와 ID 열의 차이점은 무엇입니까? 열은 들여 쓰기없이 기본 키가 될 수 있습니다. 그러나 열은 기본 키가 아닌 ID가 될 수 없습니다.
차이점 외에도 PK 및 ID 열은 PK 열만 제공하지 않는 것은 무엇입니까?
편집 : 죄송합니다. 아래에서 지적하고 이제 내가 확인했듯이 열은 PK가 아니어도 ID가 될 수 있습니다. 유적 테스트 때 열 유형은 없습니다. 말이된다.
열은 PK가 아니어도 확실히 ID가 될 수 있습니다.
ID는 자동 증가하는 열입니다.
기본 키는 행을 정의하는 고유 한 열입니다.
이 두 가지 필요는 함께 사용합니다.
이 대답은 Joe가 정확히 대답 한 것보다 WHY 정확하고 주요 키에 더 가깝습니다.
ID는 SQL이 제어하는 값입니다. ID는 행 함수입니다. 증가하는 감소합니다. 수정 범위 안 종료 값의 간격은 무시해야합니다. ID 값은 값이 많지 않은 테이블 B를 테이블 A에 연결하는 데 매우 유용합니다. ID는 모든 경우에 클러스터형 보안에 대한 최선의 선택이 아닙니다. 테이블에 감사 데이터가 포함되어있는 경우에 대한 레코드가있는 경우에 이루어지기 때문에 "오늘과 4 일 전 사이에 날짜 일"이라는 질문에 대한 답변 제공에 더 많은 날짜가 포함되어있는 경우에 제공됩니다. 있습니다. 데이터 페이지.
기본 키는 행의 열을 고유하게 만듭니다. Primay 키는 열 함수입니다. 모든 고유 테이블에 하나의 기본 키만 정의 할 수 있습니다. 기본 키 클러스터링이 항상 올바른 선택은 아닙니다. 전화 번호는 생각해 봐. 전화 번호부가 primay 키 (전화 번호)에 의해 클러스터 된 경우 "First Street"의 전화 번호를 반환하는 쿼리는 매우 비용이 많이 듭니다.
ID 및 기본 키에 따르는 일반적인 규칙은 다음과 같습니다.
- 항상 ID 열 사용
- 범위 조회에 사용되는 열에 클러스터형 강화를 만듭니다.
- 클러스터형 강화가 다른 모든 레벨 추가 확장형 강화를 좁게 유지하라.
- 거부 값을 거부하기 위해 primay 키 및 보안 생성 위해
- 키 좁은가 더 좋습니다
- 조인에 사용되는 모든 열에 대한 강화 생성
이것이 나의 일반 규칙입니다.
기본 키 (후보 키라고도 함)는 고유성과 최소 성의 속성을 가진 속성 집합입니다. 즉, 키 열이 고유하게 제한됩니다. 즉, DBMS는 두 행이 해당 속성에 대해 동일한 값 집합을 허용하지 않습니다.
IDENTITY 속성은 열에 대한 자동 증가를 구성합니다. 하지만 해당 열이 고유 할 필요는 내부 IDENTITY 열이 반드시 키가되는 것은 아닙니다.
그러나 IDENTITY 열은 일반적으로 키로 사용하기위한 것입니다. 일반적으로이를 허용하지 않습니다.
에 기반한 편집
키는 행에 고유합니다. 행을 포토하는 방법입니다. 행에는 키가 하나 또는 여러 개있을 수 있습니다. 하나 이상의 열로 구성이 가능합니다.
키는 고유 한 제약 조건이있는 수준입니다. 이 키가 아닌 등급과 구별됩니다.
다중 열이있는 모든 수준을 "복합 수준"이라고합니다.
일반적으로 기본 키는 행을 고유하게 기본 키로됩니다. 이 중 하나만있을 수 있습니다.
테이블의 디자인에 따라 기본 키가 없습니다.
기본 키는 바로 "기본 키"입니다. 행의 고유 한 ID를 지정하는 주요 항목입니다. 테이블의 디자인에 따라 이름이 잘못 될 수있는 여러 키가 고유성을 표현합니다.
SQL Server에서는 기본 키가 클러스터 될 수 있습니다. 즉, 나머지 열은 수준의 리프 수준 에서이 키에 연결됩니다. 즉, SQL 서버가 키를 찾으면 행도 찾은 것입니다 (하게 말하자면 이는 명확 클러스터 된 측면 때문입니다 ).
고유 한 이름은 생성하는 행에 대한 고유 ID를 생성합니다.
이 두 가지 경우와 함께 사용하는 필수 사항은 아닙니다.
기본 키는 고유성을 강조하고 동일한 열의 모든 레코드에 대한 추가 값을 방지하는 반면, ID는 데이터를 삽입하지 않고 열에 증가하는 숫자를 제공합니다. 두 기능은 단일 열 또는 다른 열에있을 수 있습니다.
정수는 사용할 수 있습니다. 0 인 숫자 데이터 유형에도 IDENTITY를 사용할 수 있습니다.
기본 키는 크기가 될 수 있습니다.
PRIMARY KEY 또는 UNIQUE 제약 조건과 결합 된 IDENTITY를 사용하면 간단한 고유 행 식별자를 제공 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4293426/whats-the-difference-between-a-primary-key-and-identity
'ProgramingTip' 카테고리의 다른 글
ID, 클래스 및 요소 유형 접두사를 포함하는 HTML 명명 규칙? (0) | 2020.12.01 |
---|---|
내부 클래스의 공용 및 내부 멤버? (0) | 2020.12.01 |
iPad 레이아웃은 세로에서 가로로 회전 할 때 확대됩니다. (0) | 2020.12.01 |
입력이 일치하지 않을 때 grep이 오류를 반환하지 않습니다. (0) | 2020.12.01 |
Twitter Bootstrap : navbar 내에서`.btn` 클래스를 사용하는 올바른 방법은 무엇입니까? (0) | 2020.12.01 |