Microsoft SQL Server에서 외래 키를 만드는 방법

데이터베이스에서 가장 중요한 개념 중 하나는 데이터베이스 테이블 간의 관계를 만드는 것입니다. 이러한 관계는 여러 테이블에 저장된 데이터를 연결하고 효율적인 방식으로 데이터를 검색하는 메커니즘을 제공합니다. 두 테이블 사이에 링크를 작성하려면 다른 테이블의 컬럼을 참조하는 하나의 테이블에 외부 키 를 지정해야합니다.

데이터베이스 테이블 및 관계

데이터베이스는 이미 Microsoft Excel과 같은 스프레드 시트 프로그램 에서 사용하는 것과 유사한 일련의 테이블 이라는 것을 이미 알고있을 것입니다. 실제로 Excel 스프레드 시트를 데이터베이스로 변환 할 수도 있습니다. 그러나 데이터베이스가 스프레드 시트와 다른 경우 테이블간에 강력한 관계 를 구축하는 경우입니다.

예를 들어 회사에서 인적 자원 정보를 추적하는 데 사용하는 데이터베이스를 생각해보십시오. 이 데이터베이스에는 회사 직원의 각 구성원에 대해 다음 정보가 포함 된 Employees라는 테이블이있을 수 있습니다.

이 예에서 직원 ID는 데이터베이스에 추가 될 때 각 직원에게 할당되는 고유하게 생성 된 정수입니다. 위치 ID는 회사의 직원 위치를 나타내는 데 사용되는 작업 코드입니다. 이 제도에서 직원은 한 가지 직위 만 가질 수 있지만 직원이 여러 명이면 각 직위를 채울 수 있습니다. 예를 들어, "직원"위치에 수백 명의 직원이있을 수 있습니다.

데이터베이스에는 위치라는 테이블과 각 위치에 대한 다음 추가 정보가 포함될 수도 있습니다.

이 테이블의 위치 ID 필드는 Employees 테이블의 Employee ID 필드와 유사합니다. 이는 위치가 데이터베이스에 추가 될 때 생성되는 고유하게 생성 된 정수입니다.

우리가 데이터베이스에서 직원 목록을 가져 오기 위해 갈 때 각 사람의 이름과 직함을 요청하는 것이 자연 스럽습니다. 그러나이 정보는 여러 데이터베이스 테이블에 저장되므로 테이블 간의 기존 관계가 필요한 JOIN 쿼리를 사용해야 만 정보를 검색 할 수 있습니다.

테이블의 구조를 볼 때, 관계를 정의하는 필드는 아마도 분명합니다 - 위치 ID 필드. 각 직원은 하나의 위치 만 가질 수 있으며 해당 위치는 위치 테이블의 해당 항목에서 위치 ID를 포함하여 식별됩니다. 이 예에서 위치 테이블의 기본 키 일뿐만 아니라, 위치 ID 필드도 Employees 테이블에서 Positions 테이블로의 외래 키입니다. 그런 다음 데이터베이스는이 필드를 사용하여 여러 테이블의 정보를 서로 연관시키고 데이터베이스에 대한 변경 사항이나 추가 사항이 계속해서 참조 무결성 을 유지하도록 합니다 .

외래 키를 확인한 후에는 다음 쿼리를 사용하여 데이터베이스에서 원하는 정보를 가져올 수 있습니다.

SELECT 성, 성, 직위 FROM Employees INNER JOIN 종업원에 대한 직위 .PositionID = 직책. 위치 ID

SQL Server에서 외래 키 만들기

기술적으로 위의 쿼리를 수행 할 수 있도록 명시 적으로 관계를 정의 할 필요는 없습니다. 그러나 외래 키 제약 조건을 사용하여 관계를 명시 적으로 정의하면 데이터베이스에서 몇 가지 정리 작업을 수행 할 수 있습니다.

SQL Server에서 외래 키를 만드는 방법은 다음과 같습니다.

ALTER TABLE 사원 외래 키 추가 (PositionID) 참조 위치 (PositionID)

다음 절을 추가하여 테이블을 만들 때 외래 키를 만들 수도 있습니다.

외래 키 참조 위치 (PositionID)

외부 키 C 럼에 대한 C 럼 정의의 끝에 추가하십시오.