Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

FOREIGN KEY는 무엇을 의미하며 MySQL 테이블에서 어떻게 사용할 수 있습니까?

<시간/>

실제로 FOREIGN KEY는 두 테이블의 데이터 간의 링크를 설정하는 데 사용할 수 있는 열 또는 열의 조합입니다. 즉, FOREIGN KEY 제약 조건은 두 개의 테이블과 관련이 있다고 말할 수 있습니다. 테이블의 PRIMARY KEY가 다른 테이블의 FOREIGN KEY와 연결되어 있기 때문에 데이터 무결성을 향상시키기 위해서도 사용됩니다.

구문

FOREIGN KEY [column_name] REFERENCES [table having Primary Key] ([column_name]);

여기서 REFERENCES는 키워드입니다. column_name은 FOREIGN KEY가 설정될 열의 목록입니다. 기본 키가 있는 테이블은 PRIMARY KEY를 포함하는 테이블의 이름입니다. column_name은 PRIMARY KEY가 설정된 열의 목록입니다.

예시

'Customer'와 'Orders'라는 두 개의 테이블이 있다고 가정합니다. 두 테이블 간의 관계는 'Cust_Id' 필드에 지정된 'orders' 테이블의 외래 키로 설정할 수 있습니다. 두 테이블을 모두 생성하는 쿼리는 다음과 같습니다 -

mysql> Create Table Customer(Cust_ID int Primary Key, First_name Varchar(20), Last_name  Varchar(20), City Varchar(10));
Query OK, 0 rows affected (0.13 sec)

mysql> Create Table Orders(Order_Id Int Primary Key, Product_Name Varchar(25), Orderdate DATE, Cust_ID Int, FOREIGN KEY(Cust_ID) REFERENCES Customer(Cust_id));
Query OK, 0 rows affected (0.13 sec)

mysql> Describe Orders;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| Order_Id     | int(11)     | NO   | PRI | NULL    |       |
| Product_Name | varchar(25) | YES  |     | NULL    |       |
| Orderdate    | date        | YES  |     | NULL    |       |
| Cust_ID      | int(11)     | YES  | MUL | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
4 rows in set (0.04 sec)

여기서 'Customer' 테이블을 상위 테이블 또는 참조 테이블이라고 하고 'Orders' 테이블을 하위 테이블 또는 참조 테이블이라고 합니다. 자식 테이블의 행은 부모 테이블에 있는 값을 포함해야 합니다. 예를 들어 'orders' 테이블의 각 행에는 'customer' 테이블에 있는 'Cust_Id'가 있어야 합니다.