Mysql 외래 키는 주로 마스터 테이블과 슬레이브 테이블 간의 관계를 설정하고, 두 테이블의 데이터에 대한 연결을 설정하고, 두 테이블의 데이터 일관성과 무결성을 제한하는 데 사용됩니다. 데이터 일관성과 무결성을 유지하는 주요 목적은 외래 키 테이블에 저장된 데이터를 제어하는 것입니다. 테이블에는 하나 이상의 외래 키가 있을 수 있으며, 외래 키는 null이 아닐 수 있습니다. 각 외래 키의 값은 기본 테이블의 기본 키의 특정 값과 같아야 합니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL 외래 키 제약 조건(FOREIGN KEY)은 테이블의 특수 필드로, 기본 키 제약 조건과 함께 자주 사용됩니다. 연결된 관계가 있는 두 테이블의 경우, 연결된 필드의 기본 키가 있는 테이블이 기본 테이블(부모 테이블)이고, 외래 키가 있는 테이블이 보조 테이블(자식 테이블)입니다.
MySQL 외래 키의 역할:
데이터 일관성과 무결성을 유지하는 주요 목적은 외래 키 테이블에 저장된 데이터를 제어하는 것입니다. 두 테이블을 연결하려면 외래 키는 테이블의 열 값만 참조하면 됩니다!
외래 키는 마스터 테이블과 슬레이브 테이블 간의 관계를 설정하고, 두 테이블의 데이터에 대한 연결을 설정하고, 두 테이블의 데이터 일관성과 무결성을 제한하는 데 사용됩니다. 예를 들어, 과일 가판대에는 사과, 복숭아, 자두, 수박 네 가지 과일만 있는데, 과일을 사러 오면 사과, 복숭아, 자두, 수박만 선택할 수 있습니다. 구매하실 수 없습니다.
메인 테이블에서 레코드가 삭제되면 테이블의 해당 레코드도 그에 따라 변경되어야 합니다. 테이블에는 하나 이상의 외래 키가 있을 수 있으며, 외래 키는 null이 아닐 수 있습니다. 각 외래 키의 값은 기본 테이블의 기본 키의 특정 값과 같아야 합니다.
외래 키를 정의할 때 다음 규칙을 준수해야 합니다.
메인 테이블은 데이터베이스에 이미 존재하거나 현재 생성 중인 테이블이어야 합니다. 후자의 경우 마스터 테이블과 슬레이브 테이블이 동일한 테이블인 경우, 이러한 테이블을 자기 참조 테이블이라고 하며, 이러한 구조를 자기 참조 무결성이라고 합니다.
기본 테이블에 대한 기본 키를 정의해야 합니다.
기본 키에는 null 값이 포함될 수 없지만 외래 키에는 null 값이 허용됩니다. 즉, null이 아닌 모든 외래 키 값이 지정된 기본 키에 나타나는 한 외래 키의 내용은 정확합니다.
메인 테이블의 테이블 이름 뒤에 컬럼 이름을 지정하거나 컬럼 이름의 조합을 지정하세요. 이 열 또는 열 조합은 기본 테이블의 기본 키 또는 후보 키여야 합니다.
외래 키의 열 수는 기본 테이블의 기본 키의 열 수와 동일해야 합니다.
외래 키에 있는 열의 데이터 유형은 기본 테이블의 기본 키에 있는 해당 열의 데이터 유형과 동일해야 합니다.
테이블 수정 시 외래 키 제약 조건 추가
외래 키 제약 조건을 추가하기 위한 전제 조건은 다음과 같습니다. 슬레이브 테이블의 외래 키 열에 있는 데이터는 슬레이브 테이블의 기본 키 열에 있는 데이터와 일치해야 합니다. 메인 테이블이거나 데이터가 없습니다.
데이터 테이블 수정 시 외래 키 제약 조건을 추가하는 구문 형식은 다음과 같습니다.
ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
예:데이터 테이블 tb_emp2를 수정하고 deptId 필드를 외래 키로 설정한 후 기본 키 ID와 연결합니다. 데이터 테이블 tb_dept1
ALTER TABLE tb_emp2 ADD CONSTRAINT fk_tb_dept1 FOREIGN KEY(deptId)REFERENCES tb_dept1(id);
외래 키 제약 조건 삭제
외래 키 제약 조건이 테이블에 더 이상 필요하지 않으면 테이블에서 삭제해야 합니다. 외래 키가 삭제되면 마스터 테이블과 슬레이브 테이블 간의 연결이 해제됩니다.
외래 키 제약 조건을 삭제하는 구문 형식은 다음과 같습니다.
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
예:Delete 외래 키 제약 조건 fk_tb_dept1 데이터 테이블 tb_emp2
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;
【관련 권장 사항:mysql 비디오 튜토리얼】
위 내용은 mysql 외래 키의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!