파이썬에서 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에서 값을 취득하거나 변경하는 소스를 간단하게 작성할 수 있는거 같네요.
댓글