python-oracledb 라이브러리는 파이썬과 Oracle 데이터베이스를 연동할 때 주로 사용합니다. 과거에 많이 사용하던 cx_Oracle
의 새로운 이름이며 Oracle에서 공식 배포한 파이썬 라이브러리입니다.
python-oracledb 설치
먼저 python-oracledb
를 사용하기 위해서는 설치가 필요합니다. 간단하게 pip
명령어를 통해 설치할 수 있습니다.
pip install python-oracledb
기본적인 쿼리 방식
파이썬에서 python-oracledb
를 이용하여 Oracle 데이터베이스에 연결하고 쿼리를 실행하는 기본적인 코드는 다음과 같습니다.
import oracledb
# 데이터베이스 연결 정보
db_config = {
"user": "your_user",
"password": "your_password",
"dsn": "your_host:your_port/your_service_name"
}
try:
with oracledb.connect(**db_config) as connection:
with connection.cursor() as cursor:
sql = "SELECT employee_id, first_name, last_name FROM employees"
cursor.execute(sql)
results = cursor.fetchall()
print(results)
except oracledb.Error as error:
print(f"Oracle 데이터베이스 오류: {error}")
위 코드에서 쿼리 결과인 results
는 튜플의 리스트 형태로 반환됩니다. 튜플 형태는 데이터 접근에 인덱스를 사용해야 하므로, 데이터가 많아지거나 컬럼이 늘어날수록 직관성이 떨어집니다. 무엇보다 파이썬 환경에서 다른 라이브러리와 연동하기가 불편합니다.
Pandas DataFrame으로 변환하면 편리한 이유
파이썬의 핵심 라이브러리 중 하나인 pandas
의 DataFrame은 테이블 형태의 데이터를 효율적으로 다루고 분석할 수 있도록 해줍니다. python-oracledb
라이브러리를 이용한 쿼리 결과를 DataFrame으로 변환하면 여러 가지로 매우 편리합니다.
- 컬럼 이름을 사용하여 데이터에 쉽게 접근할 수 있습니다.
- 필터링, 정렬, 그룹화, 통계 분석 등 강력한 pandas의 기능을 활용할 수 있습니다.
matplotlib
,seaborn
등 다른 시각화 라이브러리와의 연동이 편리합니다.
python-oracledb 쿼리 결과를 DataFrame으로 변환하는 방법
python-oracledb
의 쿼리 결과를 pandas
DataFrame으로 변환하는 것은 매우 간단합니다. pandas
라이브러리의 DataFrame
생성자를 이용하면 됩니다.
import oracledb
import pandas as pd
# 데이터베이스 연결 정보
db_config = {
"user": "your_user",
"password": "your_password",
"dsn": "your_host:your_port/your_service_name"
}
try:
with oracledb.connect(**db_config) as connection:
with connection.cursor() as cursor:
sql = "SELECT employee_id, first_name, last_name FROM employees"
cursor.execute(sql)
columns = [col[0] for col in cursor.description] # 컬럼 이름 추출
results = cursor.fetchall()
df = pd.DataFrame(results, columns=columns)
print(df)
except oracledb.Error as error:
print(f"Oracle 데이터베이스 오류: {error}")
위 코드에서는 다음과 같은 단계를 거쳐 DataFrame을 생성합니다.
- 컬럼 이름 추출 :
cursor.description
속성을 이용하여 쿼리 결과의 컬럼 이름을 리스트 형태로 추출합니다. - DataFrame 생성 :
pd.DataFrame()
생성자에 쿼리 결과(results
)와 컬럼 이름(columns
)을 인자로 전달하여 DataFrame 객체를 생성합니다.
요약
python-oracledb
를 사용하여 Oracle 데이터베이스 쿼리 실행 결과는 튜플 리스트 형태- DataFrame으로 변환하는 것이 편리하고 효율적임