MySQL에서 외래 키 표시

Preet Sanghavi 2023년1월30일
  1. MySQL에서 테이블 생성
  2. MySQL에서 테이블의 외래 키 표시
MySQL에서 외래 키 표시

이 자습서에서는 MySQL에서 테이블과 열의 외래 키를 표시하는 방법을 탐구하는 것을 목표로 합니다.

다른 테이블의 기본 키라고도 하는 기본 키를 참조하는 키 유형을 외래 키라고 합니다. MySQL로 작업하는 동안 테이블의 외래 키를 이해하는 것이 중요합니다.

또한 특정 테이블의 열에는 연결된 외래 키가 있을 수도 있습니다. 이러한 외래 키를 가져오는 방법을 이해하려고 합니다.

MySQL에서 테이블 생성

시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details 테이블을 생성합니다.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

위의 쿼리는 학생의 성과 이름을 포함하는 행이 있는 테이블을 생성합니다. 데이터의 항목을 보려면 다음 코드를 사용합니다.

SELECT * FROM student_details;

위의 코드는 다음과 같은 출력을 제공합니다.

stu_id  stu_firstName   stu_lastName
1         Preet         Sanghavi
2         Rich          John
3         Veron         Brow
4         Geo           Jos
5         Hash          Shah
6         Sachin        Parker
7         David	        Miller

MySQL에서 테이블의 외래 키 표시

MySQL에서 테이블의 외래 키를 가져오기 위해 다음 코드 블록을 사용합니다.

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

위에서 언급한 쿼리에서 볼 수 있듯이 외래 키를 가져오기 위해 데이터베이스와 테이블 이름을 입력해야 합니다. 이 작업은 다음 쿼리를 사용하여 수행할 수 있습니다.

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<boatdb>' AND
  REFERENCED_TABLE_NAME = '<student_details>';

앞서 언급한 쿼리의 데이터베이스 이름은 boatdb이고 테이블 이름은 앞에서 언급한 student_details입니다. 앞서 언급한 코드의 출력은 다음과 같습니다.

1,TABLE_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
2,COLUMN_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
3,CONSTRAINT_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
4,REFERENCED_TABLE_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
5,REFERENCED_COLUMN_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0

또한 특정 열과 관련된 외래 키를 찾을 수도 있습니다. 이것은 다음 쿼리를 사용하여 수행할 수 있습니다.

SELECT
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = 'boatdb' AND
  REFERENCED_TABLE_NAME = 'student_details' AND
  REFERENCED_COLUMN_NAME = 'student_firstName';

보시다시피 REFERENCED_COLUMN_NAME이 추가되었습니다.

따라서 이 기술의 도움으로 특정 테이블 및 열과 관련된 외래 키를 효율적으로 표시할 수 있습니다.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

관련 문장 - MySQL Key