mysql 데이터베이스를 사용하고 있습니다. 기본 키와 고유 키가 혼동됩니다.
기본 및 고유 키를 어디에서 만들어야합니까? 어떤 상황에서 우리는 고유 키 또는 기본 키를 만듭니다.
mysql 데이터베이스를 사용하고 있습니다. 기본 키와 고유 키가 혼동됩니다.
기본 및 고유 키를 어디에서 만들어야합니까? 어떤 상황에서 우리는 고유 키 또는 기본 키를 만듭니다.
답변:
기본 키 :
NULL
-예를 들어 MySQL 추가NOT NULL
고유 키 :
NULL
값 을 가질 수 있습니다NULL
; 여러 행은 NULL
값 을 가질 수 있으므로 "고유 한"것으로 간주되지 않을 수 있습니다고유 키 (UK) : 행의 고유성을 식별 할 수있는 열 또는 열 그룹입니다.
기본 키 (PK) : 행의 고유성을 식별 할 수있는 열 또는 열 그룹 이기도 합니다.
따라서 기본 키는 고유 키의 또 다른 이름이지만 SQL Server의 기본 구현은 기본 및 고유 키와 다릅니다.
기본적으로:
영국 또는 PK를 만들지 여부를 결정할 때 실제로 목표에 달려 있습니다. "3 명으로 구성된 팀이 있으면 모두 동료이지만 PK와 영국은 비슷한 관계를 가진 동료가 될 것입니다."와 같은 비유를 따릅니다. 이 기사를 읽는 것이 좋습니다 : 저자가 제시 한 예는 적합하지 않을 수도 있지만 전반적인 아이디어를 얻으려고 노력하십시오.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
[table_name]_pkey
)이 테이블에 추가됨을 의미합니다 (이것은 대리 키라고 들었습니다). 출처 : postgresqltutorial.com/postgresql-primary-key 이 모든 것을 처음 접 했기 때문에 내가 놓친 뉘앙스를 지적하는 더 지식이 풍부한 포스터에 감사드립니다.
조직이나 비즈니스의 경우 물리적 개체 (사람, 리소스, 시스템 등)와 가상 개체 (작업, 트랜잭션, 활동)가 너무 많습니다. 일반적으로 비즈니스는 해당 비즈니스 엔터티의 정보를 기록하고 처리해야합니다. 이러한 비즈니스 항목은 전체 비즈니스 도메인 내에서 키로 식별됩니다.
예상 RDBMS에 따라 키 (일명 후보 키)는 엔터티를 고유하게 식별하는 값 또는 값 집합입니다.
DB-Table의 경우 너무 많은 키가 존재하며 기본 키를 사용할 수 있습니다. 모든 키, 기본 키, 고유 키 등을 총칭하여 후보 키라고합니다. 그러나 DBA는 레코드 검색을 위해 후보 키에서 키를 선택한 것을 기본 키라고합니다.
기본 키와 고유 키의 차이점
1. 동작 : 기본 키는 테이블에서 행 (레코드)을 식별하는 데 사용되는 반면 고유 키는 열의 중복 값을 방지합니다 (널 항목 제외).
2. 인덱싱 : 기본적으로 SQL 엔진은 존재하지 않는 경우 기본 키에 클러스터형 인덱스를 만들고 고유 키에는 비 클러스터형 인덱스를 만듭니다.
3. Nullability : 기본 키에는 Null 값이 포함되지 않지만 Unique 키는 포함됩니다.
4. 존재 : 테이블은 최대 하나의 기본 키를 가질 수 있지만 고유 키는 여러 개있을 수 있습니다.
5. 수정 가능성 : 기본 값을 변경하거나 삭제할 수 없지만 고유 키 값은 가능합니다.
자세한 정보 및 예 :
기본 키와 고유 키의 차이점
+-----------------------------------------+-----------------------------------------------+ | Primary Key | Unique Key | +-----------------------------------------+-----------------------------------------------+ | Primary Key can't accept null values. | Unique key can accept only one null value. | +-----------------------------------------+-----------------------------------------------+ | By default, Primary key is clustered | By default, Unique key is a unique | | index and data in the database table is | non-clustered index. | | physically organized in the sequence of | | | clustered index. | | +-----------------------------------------+-----------------------------------------------+ | We can have only one Primary key in a | We can have more than one unique key in a | | table. | table. | +-----------------------------------------+-----------------------------------------------+ | Primary key can be made foreign key | In SQL Server, Unique key can be made foreign | | into another table. | key into another table. | +-----------------------------------------+-----------------------------------------------+
자세한 정보는 http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html 에서 확인할 수 있습니다
.
기본 키에는 데이터베이스 행을 식별하는 의미가 있습니다. 따라서 주어진 테이블에 대해 하나의 기본 키만있을 수 있지만 많은 고유 키가있을 수 있습니다.
또한 같은 이유로 기본 키는 NULL이 될 수 없습니다 (적어도 Oracle에서는 다른 데이터베이스에 대해서는 확실하지 않음)
행을 식별하므로 절대로 변경해서는 안됩니다. 기본 키를 변경하면 심각한 통증과 아마도 영원한 저주가 발생할 수 있습니다.
따라서 대부분의 경우 테이블에서 단일 행을 식별하는 것 외에는 사용되지 않는 기본 키에 대한 인공 ID를 원합니다.
반면에 고유 키는 원하는만큼 변경 될 수 있습니다.
나는이 질문이 몇 살이라는 것을 알고 있지만 어떻게 설명 하기보다는 왜 설명 하는가에 대한 답변을 드리고자 합니다
기본 키의 목적 : 데이터베이스에서 행을 고유하게 식별하려면 => 행은 테이블에 의해 모델링 된 엔티티 유형의 단일 인스턴스를 나타냅니다. 기본 키는 엔터티 (AKA Entity Integrity)의 무결성을 강화합니다. 기본 키는 클러스터 된 인덱스입니다. 즉, 테이블에 데이터가 실제로 저장되는 순서를 정의합니다.
고유 키의 목적 : 좋습니다. 기본 키를 사용하여 행을 고유하게 식별 할 수 있습니다. 그러나 비즈니스 요구 사항이 있으므로 다른 열 / 열 집합에 고유 한 값이 있어야합니다. 기술적으로이 열이 고유하다는 점을 감안할 때 엔터티 무결성을 강화할 수 있습니다. 그러나 우리가 아는 한,이 칼럼에는 외부 조직에서 비롯된 데이터가 포함될 수 있습니다. 엔티티 무결성을 제공한다고 믿지 않을 수 있습니다. 비즈니스 요구 사항을 충족시키는 유일한 열쇠입니다.
당신은 간다!
데이터베이스 디자인이 외래 키가 필요하지 않은 경우 고유 키를 사용할 수 있지만 고유 키는 단일 null 값 허용을 기억하십시오 .
데이터베이스에 외래 키가 필요한 경우 기본 키로 이동해야합니다.
고유 키 방문과 기본 키 방문의 차이점을 보려면 여기를 클릭하십시오.
고유 키 :-고유 값을 제공해야 할 때 사용해야합니다. 고유 키의 경우 null 값도 허용됩니다. 독특한 키는 예를 들어 애완 동물 이름과 같이 해당 열에서 고유하고 유사하지 않은 키입니다. .it는 null과 같을 수 없으며 데이터베이스의 맥락에서 묻는다면 모든 null이 데이터베이스의 다른 null과 다르다는 점에 유의해야합니다. null = null이 true 인 EXCEPT-SQL 서버
primary key :-행을 고유하게 식별해야 할 때 사용해야합니다 .primary는 데이터베이스 제약 조건의 모든 행에 대해 고유 한 키로 null을 허용하지 않는다는 것입니다. 따라서 데이터베이스가 자동 증분 열이 있으며 테이블의 기본 키입니다. 플러스가 될 수있는 다른 table.example에서 외래 키로 사용할 수있는 질서 표에 OrderID를 , 법안의 표 billId .
이제 그것을 사용할 때 상황으로 돌아옵니다.
1) 테이블에서 널이 될 수없는 열의 기본 키이며 관계를 만들기 위해 다른 테이블에서 외래 키로 사용하고 있습니다.
2) 레스토랑에서 간식과 같이 특정 열에 대해 null을 가져 가도 테이블이나 전체 데이터베이스에 영향을 미치지 않는 테이블의 고유 키 레스토랑에서 간식을 섭취하지 않을 수 있습니다
기본 키와 고유 키의 차이점
모두 Primary key
와 Unique Key
고유 테이블의 행의 정의하는 데 사용됩니다.
Primary Key
a clustered index
의 열을 만듭니다 Unique creates an unclustered index of the column
.
A Primary Key
허용하지 않는 NULL value
, 그러나 a Unique Key
수 않습니다 one NULL value
.
단순히 기본 키는 고유하며 null 일 수 없으며 unique는 null 일 수 있으며 고유하지 않을 수 있습니다.
may not be unique
의미합니까?
기본 키의 주요 목적은 테이블의 각 레코드를 식별하는 수단을 제공하는 것입니다.
기본 키는 행 내의 데이터를 사용하여 행을 식별하는 수단을 제공합니다. 기본 키는 이름 및 성과 같은 하나 이상의 열을 기반으로 할 수 있습니다. 그러나 많은 설계에서 기본 키는 ID 열에서 자동 생성 된 숫자입니다.
기본 키에는 다음과 같은 특징이 있습니다.
고유 키는 고유 제한 조건이라고도합니다. 데이터베이스 내에서 행이 고유하도록 고유 제한 조건을 사용할 수 있습니다.
기본 키로 이미 수행하지 않습니까? 그렇습니다.하지만 테이블에는 고유 한 여러 열 집합이있을 수 있습니다.
SQL Server에서 고유 키는 다음과 같은 특징이 있습니다.
출처 : 여기
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT