Python pyodbc DB 접속 사용 방법

파이썬에서 ODBC를 사용해 DB를 조작하는 방법을 알아보겠습니다.

pyodbc 장점을 Oracle, Mysql, SQL Server 등 여러 종류의 데이터 베이스를 사용할 수 있다는 점입니다.

예제에서 사용할 DB는 SQL Server로 하겠습니다.

 

pyodbc 라이브러리 설치

파이참을 사용하는 경우에는 pyodbc를 검색해 라이브러리를 설치합니다.

 

커맨드를 사용하는 경우에는 pip를 인스톨 가능합니다.

$ pip install pyodbc

 

pyodbc 사용법

SQL Server와 연동을 하기 위해서는 먼저 로그인 처리를 해야 합니다.

SQL Server에 접속하는 샘플을 보겠습니다.

import pyodbc

# 서버 주소(DB 접속ip)
server = "서버 주소"

# 접속 유저
user = "유저"

# 패스워드
pasword = "패스워드"

# 데이터베이스명
db = "데이터베이스명"

cnxn = "DRIVER={SQL Server};SERVER=" + server + ";uid=" + user + ";pwd=" + pasword + ";DATABASE=" + db

 

각 정보를 입력하는 것으로 설정은 끝납니다.

SQL Server에 접속해 검색 쿼리를 실행하는 방법을 알아보겠습니다.

import pyodbc

# 서버 주소(DB 접속ip)
server = "서버 주소"

# 접속 유저
user = "유저"

# 패스워드
pasword = "패스워드"

# 데이터베이스명
db = "데이터베이스명"

cnxn = "DRIVER={SQL Server};SERVER=" + server + ";uid=" + user + ";pwd=" + pasword + ";DATABASE=" + db
cursor = cnxn.cursor()

sql =  '''select * from TEST'''
res =  cursor.execute(con, sql)
for r in res:
    print(r[0])
    print(r[1])
    print(r[2])
    print(r[3])

 

TEST라는 테이블에서 값을 취득하는 SELECT 쿼리입니다.

INSERT를 사용해 테이블에 레코드를 저장하는 방법을 알아보겠습니다.

import pyodbc

# 서버 주소(DB 접속ip)
server = "서버 주소"

# 접속 유저
user = "유저"

# 패스워드
pasword = "패스워드"

# 데이터베이스명
db = "데이터베이스명"

cnxn = "DRIVER={SQL Server};SERVER=" + server + ";uid=" + user + ";pwd=" + pasword + ";DATABASE=" + db
cursor = cnxn.cursor()

val1 = 'data1'
val2 = 'data2'
val3 = 'data3'

res =  cursor.execute("INSERT INTO TEST (col1,col2,col3) values(?,?,?)", val1, val2, val3)

 

쿼리문에 ?를 사용해 변수값을 대입할 수 있습니다.

DELETE를 사용해 데이터를 삭제하는 예제를 보겠습니다.

import pyodbc

# 서버 주소(DB 접속ip)
server = "서버 주소"

# 접속 유저
user = "유저"

# 패스워드
pasword = "패스워드"

# 데이터베이스명
db = "데이터베이스명"

cnxn = "DRIVER={SQL Server};SERVER=" + server + ";uid=" + user + ";pwd=" + pasword + ";DATABASE=" + db
cursor = cnxn.cursor()

val1 = 'data1'

res =  cursor.execute("DELETE FROM TEST WHERE col1 = ? ", val1)

 

UPDATE를 사용해 값을 변경하는 예제를 보겠습니다.

import pyodbc

# 서버 주소(DB 접속ip)
server = "서버 주소"

# 접속 유저
user = "유저"

# 패스워드
pasword = "패스워드"

# 데이터베이스명
db = "데이터베이스명"

cnxn = "DRIVER={SQL Server};SERVER=" + server + ";uid=" + user + ";pwd=" + pasword + ";DATABASE=" + db
cursor = cnxn.cursor()

val1 = 'data1'
val2 = 'value2'

res =  cursor.execute("UPDATE TEST SET col1 = ? WHERE col2 = ? ", val1, val2)

 

pyodbc를 사용해 검색, 삭제, 등록, 변경하는 예제를 확인해봤습니다.

라이브러리가 사용하기 편리하게 되어있어 DB에서 값을 취득하거나 변경하는 소스를 간단하게 작성할 수 있는거 같네요.

댓글