[python] PyMySQL을 이용하여 데이터베이스의 테이블의 외래 키를 설정하는 방법을 알아본다.

PyMySQL은 Python에서 MySQL을 조작하기 위한 모듈로, 데이터베이스의 테이블을 조작하는 다양한 기능을 제공합니다. 이번 포스트에서는 PyMySQL을 이용하여 데이터베이스의 테이블에 외래 키를 설정하는 방법에 대해 알아보겠습니다.

1. PyMySQL 설치하기

먼저, PyMySQL을 설치해야 합니다. 다음 명령을 사용하여 PyMySQL을 설치할 수 있습니다.

pip install PyMySQL

2. 데이터베이스 연결하기

import pymysql

# 데이터베이스 연결 정보 설정
connection = pymysql.connect(
    host='localhost',
    user='username',
    password='password',
    db='database_name'
)

# 커서 생성
cursor = connection.cursor()

위 코드에서 localhost, username, password, database_name은 실제 데이터베이스 연결 정보로 대체되어야 합니다.

3. 외래 키 설정하기

외래 키를 설정하기 위해서는 테이블 생성 시 해당 컬럼을 외래 키로 지정해야 합니다. 다음은 외래 키를 설정하는 코드의 예시입니다.

# 테이블 생성 SQL
create_table_sql = '''
CREATE TABLE table_name (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    other_id INT,
    FOREIGN KEY (other_id) REFERENCES other_table(id)
)
'''

# 테이블 생성
cursor.execute(create_table_sql)

위 코드에서 table_name은 외래 키를 설정할 테이블의 이름을, other_table은 외래 키가 참조하는 다른 테이블의 이름을 나타냅니다. other_id 컬럼은 외래 키로 설정되며, other_tableid 컬럼을 참조합니다.

4. 외래 키 제약 조건 설정하기

외래 키 제약 조건을 설정하여 데이터 일관성을 유지할 수 있습니다. 다음은 외래 키 제약 조건을 설정하는 코드 예시입니다.

# 외래 키 제약 조건 설정 SQL
add_foreign_key_sql = '''
ALTER TABLE table_name
ADD CONSTRAINT constraint_name FOREIGN KEY (other_id) REFERENCES other_table(id)
'''

# 외래 키 제약 조건 설정
cursor.execute(add_foreign_key_sql)

위 코드에서 constraint_name은 외래 키 제약 조건의 이름을 나타냅니다. 이 이름은 테이블에서 고유해야 합니다.

5. 외래 키 제약 조건 삭제하기

이후에 외래 키 제약 조건을 삭제해야 할 경우, 다음과 같이 코드를 작성할 수 있습니다.

# 외래 키 제약 조건 삭제 SQL
drop_foreign_key_sql = '''
ALTER TABLE table_name
DROP FOREIGN KEY constraint_name
'''

# 외래 키 제약 조건 삭제
cursor.execute(drop_foreign_key_sql)

위 코드에서 constraint_name은 삭제할 외래 키 제약 조건의 이름입니다.

6. 데이터베이스 연결 종료하기

외래 키 설정 작업을 마친 뒤에는 데이터베이스 연결을 종료해야 합니다.

# 연결 종료
cursor.close()
connection.close()

위 코드를 추가하여 데이터베이스 연결을 종료하고 자원을 반환합니다.

이상으로 PyMySQL을 이용하여 데이터베이스의 테이블에 외래 키를 설정하는 방법에 대해 알아보았습니다. PyMySQL은 강력한 기능을 제공하므로, 데이터베이스 조작 작업을 할 때 유용하게 사용할 수 있습니다.

참고 자료