본문 바로가기
DBMS

DBMS 연결 및 쿼리 처리 방법 (파이썬)

by yororing 2024. 9. 5.

00 개요

  • 회사에서 이런 저런 DBMS를 다루다보니 여러가지 오픈소스 RDBMS를 파이썬으로 다루게 되었는데 이에 대해 기본적인 연결 방법 및 쿼리 처리 방법에 대해 정리하고자 함
  • 다양한 DBMS에서 Python으로 connection과 cursor를 생성하고 닫는 방법에 대한 정리
    • MySQL, PostgreSQL, SQLite, Oracle(유료), Microsoft SQL Server, Vertica (유료)
  • 주요 DBMS마다 사용하는 Python 라이브러리가 다르므로, 각 DBMS별로 필요한 방법을 구체적으로 설명

01 MySQL (MySQL Connector/Python)

1. 설치

pip install --upgrade mysql-connector-python

2. 코드 예시

import mysql.connector

# Connection 생성
connection = mysql.connector.connect(
    host="localhost",
    user="username",
    password="mypassword",
    database="mydb"
)

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM mytable")

# 결과 처리
result = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

02 PostgreSQL (psycopg2)

1. 설치

pip install --upgrade psycopg2

2. 코드 예시 

import psycopg2

# Connection 생성
connection = psycopg2.connect(
    host="localhost",
    user="username",
    password="mypassword",
    database="mydb"
)

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM mytable")

# 결과 처리
results = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

03 SQLite (sqlite3 - 표준 라이브러리)

1. 설치

  • SQLite는 python 표준 라이브러리에 포함되어 있어 별도의 설치 불필요

2. 코드 예시

import sqlite3

# Connection 생성
connection = sqlite3.connect("your_database.db")

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM mytable")

# 결과 처리
results = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

04 Oracle (cx_Oracle)

1. 설치

pip install --upgrade cx_Oracle

2. 코드 예시

import cx_Oracle

# Connection 생성
connection = cx_Oracle.connect(
    user="your_username",
    password="your_password",
    dsn="localhost/your_service_name"
)

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM mytable")

# 결과 처리
results = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

05 Microsoft SQL Server (pyodbc)

1. 설치

pip --upgrade install pyodbc

2. 코드 예시

import pyodbc

# Connection 생성
connection = pyodbc.connect(
    "DRIVER={ODBC Driver 17 for SQL Server};"
    "SERVER=localhost;"
    "DATABASE=your_database;"
    "UID=your_username;"
    "PWD=your_password"
)

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM mytable")

# 결과 처리
results = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

06 Vertica (vertica-python)

1. 설치

pip install --upgrade vertica-python

2. 코드 예시

import vertica_python

# Connection 생성
connection = vertica_python.connect(
    host="localhost",
    user="your_username",
    password="your_password",
    database="your_database"
)

# Cursor 생성
cursor = connection.cursor()

# 쿼리 실행
cursor.execute("SELECT * FROM your_table")

# 결과 처리
results = cursor.fetchall()

# Cursor 및 Connection 닫기
cursor.close()
connection.close()

07 요약

  • 각 DBMS에 따라 연결(connection)을 생성한 후, 쿼리를 실행하기 위해 cursor를 생성
  • 작업이 끝나면 반드시 cursor.close()connection.close()를 호출하여 리소스를 정리하는 것이 중요
  • 명시적으로 close()를 호출함으로써 리소스 누수를 방지하는 것!

'DBMS' 카테고리의 다른 글

View (가상 테이블)  (0) 2024.06.18
View (가상 테이블)  (1) 2024.06.13
Sequence (시퀀스)  (0) 2024.06.13
Replication/Replica (데이터 백업 수단)  (0) 2024.06.12