본문 바로가기
개발

파이썬 DB연결 (pymssql - insert select update 예제)

by 화악 2022. 5. 10.
반응형

안녕하세요 이번에는 python to mssql을 라이브러리 pymssql을 사용하여 직접 구현해보도록 하겠습니다. 연결부터 insert select update 모두 예제 코드를 보며 이해 하시면 됩니다.

 

 

Pymssql Conneection


import pymssql

conn = pymssql.connect(host='localhost', user='fa' , password='fa',database='POS',as_dict=True)

연결 부분입니다. host에 ip주소 user에 id password는 비밀번호 database 는 접속할 db명을 쓰시면 됩니다. 이러면 연결 부분은 끝입니다.

 

cursor.conn.cursor()

select insert update delete등의 쿼리문을 실행하려면 커서를 먼저 정의해야합니다. 후에 커서를 통해 쿼리문을 실행합니다. 

 

 

Pymssql Select


query="select OIL from [POS].[DBO].[POS] where CAR=%s"

cursor.execute(query,(2000))
OIL = cursor.fetchall()

OIL = OIL[0].get('OIL')

cursor까지 정의했다면 이제 쿼리문을 만들어 cursor.execute 인자값으로 넣으시면 됩니다 where절은 보통 변수가 들어가는 경우가 많기때문에 스트링 변수를 받는 %s로 정의 했습니다. 여기서 많은 오류를 경험하시는데 cursor.execute(query,2000) 일거 같지만 안에 %s로 받는 부분에 들어갈 변수나 상수는 꼭 괄호를 한번더 쳐주셔야 합니다. 해당 쿼리문이 실행되면 cursor 안에 데이터가 기록되고 fetchall함수로 가져올 수 있습니다. 그 후 변수에 담은뒤 배열 첫번째열 갖고오고 싶은 컬럼을 작성하면 됩니다. 글로 쓰면 어렵지만 예제로 한두개 하시면 금방 이해하실겁니다.

 

 

Pymssql Insert


query= "insert into [POS].[dbo].[POS] (car_num, oil) values(%s,%s)"

cursor.execute(query,('1782','2002')

conn.commit()

 위에 %s부분은 설명해 드렸습니다 구조는 똑같습니다 execute 인자값으로 쿼리문과 %s에 해당되는 값을 넣고 commit()해주시면 됩니다. commit()을 안하면 락이 걸리거나 제대로 작동하지 않을 수 있습니다.

 

 

Pymssql Update


query = "update [POS].[DBO].[POS] set oil=2000 where car_num = %s"

cursor.execute(query,('2000'))

conn.commit()

위에 insert문과 동일합니다 그냥 쿼리문만 바꾸시면 됩니다. 모든 쿼리문 프로시저등 이 구조만 아시면 다 구현 가능합니다. 굉장히 간단한 작업이니 예제만 보셔도 충분히 따라하실 수 있습니다.

 

 

 

반응형

댓글