외래 키를 사용하여 테이블 간의 관계를 생성할 수 있습니다. 외래 키 관계는 일대일 또는 일대다일 수 있습니다. 외래 키는 다른 테이블의 다른 필드와 일치합니다.
-
일대일 관계 − 한 테이블의 한 레코드가 다른 테이블의 한 레코드에 연결됩니다.
-
일대다 관계 − 하나의 레코드가 다른 테이블의 여러 레코드에 연결됩니다.
다음은 예입니다. 먼저 테이블을 생성하겠습니다. CREATE 명령은 테이블을 생성하는 데 사용됩니다.
mysql> create table tblF - > ( - > id int , - > FirstName varchar(100), - > FK_PK int - > ); Query OK, 0 rows affected (0.57 sec)
두 번째 테이블을 생성하려면
mysql> create table tblP - > ( - > FK_PK int, - > LastName varchar(100), - > primary key(FK_PK) - > ); Query OK, 0 rows affected (0.94 sec)
다음은 외래 키를 생성하는 구문입니다.
mysql> ALTER table tblF add constraint ConstFK foreign key(FK_PK) references tblP(FK_PK); Query OK, 0 rows affected (2.17 sec) Records: 0 Duplicates: 0 Warnings: 0
DESC 명령어로 외래 키가 생성되었는지 확인합니다.
mysql> DESC tblF;
다음은 출력입니다.
+-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | FirstName | varchar(100) | YES | | NULL | | | FK_PK | int(11) | YES | MUL | NULL | | +-----------+--------------+------+-----+---------+-------+ 3 rows in set (0.05 sec)