SQL 외래 키 제약 조건은 FOREIGN KEY 키워드를 통해 지정할 수 있으며 생성 문은 "ALTER TABLE 테이블 이름 ADD CONSTRAINT 외래 키 이름 FOREIGN KEY(열 이름) REFERENCES 기본 테이블 이름(열 이름);"입니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL 외래 키 제약 조건(FOREIGN KEY)은 테이블의 특수 필드로, 기본 키 제약 조건과 함께 자주 사용됩니다. 연결된 관계가 있는 두 테이블의 경우, 연결된 필드의 기본 키가 있는 테이블이 기본 테이블(부모 테이블)이고, 외래 키가 있는 테이블이 보조 테이블(자식 테이블)입니다.
외래 키는 마스터 테이블과 슬레이브 테이블 간의 관계를 설정하고, 두 테이블의 데이터에 대한 연결을 설정하고, 두 테이블의 데이터 일관성과 무결성을 제한하는 데 사용됩니다.
테이블 외래 키 제약 조건 만들기
ALTER TABLE 문에서 FOREIGN KEY 키워드를 통해 외래 키를 지정할 수 있습니다. 외래 키 제약 조건을 추가하기 위한 전제 조건은 다음과 같습니다. 슬레이브 테이블의 외래 키 열에 있는 데이터는 다음과 같습니다. 기본 테이블과 일치해야 합니다. 기본 키 열의 데이터가 일치하거나 데이터가 없습니다.
구체적인 구문 형식은 다음과 같습니다.
ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
외래 키를 정의할 때 다음 규칙을 준수해야 합니다.
메인 테이블은 데이터베이스에 이미 존재하거나 현재 생성 중인 테이블이어야 합니다. . 후자의 경우 마스터 테이블과 슬레이브 테이블이 동일한 테이블인 경우, 이러한 테이블을 자기 참조 테이블이라고 하며, 이러한 구조를 자기 참조 무결성이라고 합니다.
기본 테이블에 대한 기본 키를 정의해야 합니다.
기본 키에는 null 값이 포함될 수 없지만 외래 키에는 null 값이 허용됩니다. 즉, null이 아닌 모든 외래 키 값이 지정된 기본 키에 나타나는 한 외래 키의 내용은 정확합니다.
메인 테이블의 테이블 이름 뒤에 컬럼 이름을 지정하거나 컬럼 이름의 조합을 지정하세요. 이 열 또는 열 조합은 기본 테이블의 기본 키 또는 후보 키여야 합니다.
외래 키의 열 수는 기본 테이블의 기본 키의 열 수와 동일해야 합니다.
외래 키에 있는 열의 데이터 유형은 기본 테이블의 기본 키에 있는 해당 열의 데이터 유형과 동일해야 합니다.
예:
데이터 테이블 tb_emp2를 수정하고, deptId 필드를 외래 키로 설정하고, 이를 데이터 테이블 tb_dept1의 기본 키 ID와 연결합니다.
mysql> ALTER TABLE tb_emp2 -> ADD CONSTRAINT fk_tb_dept1 -> FOREIGN KEY(deptId) -> REFERENCES tb_dept1(id); Query OK, 0 rows affected (1.38 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> SHOW CREATE TABLE tb_emp2\G *************************** 1. row *************************** Table: tb_emp2 Create Table: CREATE TABLE `tb_emp2` ( `id` int(11) NOT NULL, `name` varchar(30) DEFAULT NULL, `deptId` int(11) DEFAULT NULL, `salary` float DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_tb_dept1` (`deptId`), CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 1 row in set (0.12 sec)
참고: 생성된 데이터 테이블에 외래 키 제약 조건을 추가할 때 외래 키 제약 조건이 추가된 열의 값이 모두 기본 키 열에서 오는지 확인하고 외래 키 열은 비워 둘 수 없습니다. .
(추천 튜토리얼: mysql 비디오 튜토리얼)
위 내용은 테이블 외래 키 제약 조건을 생성하는 SQL 문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!