[python] 파이썬과 데이터베이스 연동 에러 해결 방법

파이썬을 사용하여 데이터베이스와의 연동 시 흔히 발생하는 에러들에 대해 알아보겠습니다. 이 글에서는 주로 SQLite 데이터베이스를 사용한 예를 들겠습니다.

1. 모듈이 없는 경우

첫 번째로 해결해야 할 에러는 파이썬 모듈이 설치되어 있지 않을 때 발생하는 에러입니다. 데이터베이스를 사용하기 위한 모듈로는 sqlite3이 있으며, 다음과 같이 설치할 수 있습니다.

pip install sqlite3

2. 데이터베이스 파일을 찾을 수 없는 경우

데이터베이스 파일을 찾을 수 없는 경우에는 sqlite3.OperationalError가 발생합니다. 이 경우에는 데이터베이스 파일의 경로를 올바르게 설정해야 합니다. 예를 들어, 현재 디렉토리에 example.db라는 파일이 있고 이를 사용하고자 할 때, 다음과 같이 경로를 설정해야 합니다.

import sqlite3

conn = sqlite3.connect('example.db')

3. 테이블이 없는 경우

데이터베이스에서 테이블이 없는 경우에는 sqlite3.OperationalError가 발생합니다. 이 경우에는 테이블을 생성해야 합니다. 예를 들어, users라는 테이블을 생성하고자 할 때, 다음과 같이 SQL 문을 실행해야 합니다.

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# users 테이블 생성
cursor.execute('''CREATE TABLE users
                  (id INTEGER PRIMARY KEY AUTOINCREMENT, name text, age integer)''')

conn.commit()

4. SQL 문에 오타가 있는 경우

SQL 문 작성 시 오타가 있으면 sqlite3.OperationalError가 발생합니다. 이 경우에는 SQL 문을 다시 확인하고 오타를 수정해야 합니다.

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 잘못된 SQL 문
cursor.execute('SELECT * FROM userss')

# 올바른 SQL 문
cursor.execute('SELECT * FROM users')

conn.commit()

5. 데이터 타입 불일치

데이터베이스에 데이터를 삽입할 때, 데이터 타입이 일치하지 않으면 sqlite3.OperationalError가 발생할 수 있습니다. 이 경우에는 데이터 타입을 확인하고 수정해야 합니다.

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 잘못된 데이터 타입
cursor.execute("INSERT INTO users (name, age) VALUES ('John', '25')")

# 올바른 데이터 타입
cursor.execute("INSERT INTO users (name, age) VALUES ('John', 25)")

conn.commit()

위에서 설명한 방법들을 활용하여 파이썬과 데이터베이스의 연동 에러를 해결할 수 있습니다. 각 에러 상황에 대한 대응 방법을 잘 숙지하고, 간단한 코드 예시를 활용하여 문제를 해결할 수 있습니다.


참고 문서: