먼저 두 개의 테이블을 만들고 외래 키 제약 조건으로 조인해 보겠습니다. 첫 번째 테이블을 생성하는 쿼리는 다음과 같습니다. -
mysql> create table ParentTable -> ( -> UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(10) -> ); Query OK, 0 rows affected (0.56 sec)
삽입 명령을 사용하여 첫 번째 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> insert into ParentTable(EmployeeName) values('John'); Query OK, 1 row affected (0.15 sec) mysql> insert into ParentTable(EmployeeName) values('Carol'); Query OK, 1 row affected (0.32 sec) mysql> insert into ParentTable(EmployeeName) values('Sam'); Query OK, 1 row affected (0.18 sec) mysql> insert into ParentTable(EmployeeName) values('Bob'); Query OK, 1 row affected (0.19 sec)
이제 select 문을 사용하여 테이블의 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> select *from ParentTable;
다음은 출력입니다 -
+----------+--------------+ | UniqueId | EmployeeName | +----------+--------------+ | 1 | John | | 2 | Carol | | 3 | Sam | | 4 | Bob | +----------+--------------+ 4 rows in set (0.00 sec)
외래 키 제약 조건이 있는 두 번째 테이블을 생성하는 쿼리는 다음과 같습니다. -
mysql> create table ChildTable -> ( -> UniqueId int NOT NULL PRIMARY KEY, -> EmployeeAddress varchar(100), -> CONSTRAINT fk_uniqueId FOREIGN KEY(UniqueId) references ParentTable(UniqueId) -> ); Query OK, 0 rows affected (0.54 sec)
이제 삽입 명령을 사용하여 두 번째 테이블에 일부 레코드를 삽입합니다. 쿼리는 다음과 같습니다 -
mysql> insert into ChildTable values(1,'15 West Shady Lane Starkville, MS 39759'); Query OK, 1 row affected (0.19 sec) mysql> insert into ChildTable values(2,'72 West Rock Creek St. Oxford, MS 38655'); Query OK, 1 row affected (0.18 sec) mysql> insert into ChildTable(UniqueId) values(3); Query OK, 1 row affected (0.41 sec) mysql> insert into ChildTable values(4,'119 North Sierra St. Marysville, OH 43040'); Query OK, 1 row affected (0.16 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from ChildTable;
다음은 출력입니다 -
+----------+-------------------------------------------+ | UniqueId | EmployeeAddress | +----------+-------------------------------------------+ | 1 | 15 West Shady Lane Starkville, MS 39759 | | 2 | 72 West Rock Creek St. Oxford, MS 38655 | | 3 | NULL | | 4 | 119 North Sierra St. Marysville, OH 43040 | +----------+-------------------------------------------+ 4 rows in set (0.00 sec)
이제 왼쪽 조인을 사용하여 테이블을 조인해 보겠습니다. 쿼리는 다음과 같습니다 -
mysql> select ParentTable.UniqueId,ParentTable.EmployeeName,ChildTable.EmployeeAddress from ParentTable left join -> ChildTable on ParentTable.UniqueId=ChildTable.UniqueId;
다음은 출력입니다 -
+----------+--------------+-------------------------------------------+ | UniqueId | EmployeeName | EmployeeAddress | +----------+--------------+-------------------------------------------+ | 1 | John | 15 West Shady Lane Starkville, MS 39759 | | 2 | Carol | 72 West Rock Creek St. Oxford, MS 38655 | | 3 | Sam | NULL | | 4 | Bob | 119 North Sierra St. Marysville, OH 43040 | +----------+--------------+-------------------------------------------+ 4 rows in set (0.00 sec)