본문 바로가기
프로그래밍/Python

[파이썬] pymssql를 활용한 MSSQL DB 데이터 조회

by 코딩연습생 2020. 8. 13.
반응형

안녕하세요

 

코딩연습생입니다~ㅎ

 

이번 포스팅은 제목에서 언급한것 처럼 Python에서 pymssql을 사용한 mssql DB 데이터를 Select하는 방법을

 

포스팅해 보도록 하겠습니다

 

첫번째는 파이썬을 설치 해야 합니다

 

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

해당 싸이트에 접속한 뒤에 아래 버튼을 통해 다운로드 받습니다

 

 

구버전을 다운로드 하시고자 한다면 화면을 좀 더 아래로 내리면 버전별 다운로드가 가능합니다

 

 

여기서 버전을 선택하여 Download를 눌러주시면 됩니다

 

다운 받은 설치 파일 실행하여 설치 합니다

 

 

Install Now를 클릭하여 설치

 

정상 적으로 설치가 되셨으면 시작버튼을 누루면 다음과 같은 목록이 나옵니다

 

 

다음 정상적인 설치가 되었는지 확인을 위해서 PowerSheel을 관리자 권한으로 실행 합니다

 

파워쉘에서 다음 명령어를 실행합니다

(명령어 뒤에 V는 꼭 대문자로 해주셔야 합니다)

python -V

 

이렇게 명령어를 치게 되면 현재 설치된 python의 버전 정보가 나타나야 합니다

 

위와 같이 표기가 되어야 정상 구동이 되는 것입니다

 

그 다음 pymssql을 설치하기 위해 pip 명령어를 사용합니다

 

pip install pymssql

 

위의 명령어를 치시면 설치가 진행 됩니다

 

저는 이미 설치 해논 상태라 설치가 되어 있다고 나오네요

 

설치를 완료 하셨다면 정상적으로 설치가 되었는지 확인해야겠지요?

 

python
import pymssql

 

위의 명령어를 순서로 사용해 줍니다

 

이렇게 pymssql에 패키를 불러와 다음 명령어를 대기하는 상태가 되어야 합니다

 

다음 파이썬 py 파일을 하나생성합니다

 

그리고 제일 상단에 pymssql 패키지를 불어와야 합니다

 

import pymssql

간단하죠?

 

그다음 함수를 만들어서 MSSQL에 접속을 시도 할겁니다

 

conn = pymssql.connect(server='localhost', database='SAC_VISION')

 

로컬의 SAC_VISION이라는 DB에 접속하겠다는 구문 입니다

 

여기서 혹 로컬이 아닌 네트워크 서버에 붙으신다면 server 뒤에 localhost가 아닌 IP 주소를 입력하시고

user='ID', password='패스워트'를 넣어주시면 됩니다

 

다음 커서를 생성하고

 

cursor = conn.cursor()

 

쿼리를 돌릴 execute를 생성합니다

 

        cursor.execute("SELECT CONVERT(INT, MODEL_NO), CONVERT(INT, VARIABLE_1), VARIABLE_2, "
                      +"       CONVERT(INT, AREA_X)+CONVERT(INT, POINT_X), CONVERT(INT, AREA_Y)+CONVERT(INT, POINT_Y), "
                      +"       CONVERT(INT, AREA_X)+CONVERT(INT, AREA_WIDTH)+CONVERT(INT, POINT_X),"
                      +"       CONVERT(INT, AREA_Y)+CONVERT(INT, AREA_HEIGHT)+CONVERT(INT, POINT_Y)"
                      +"  FROM [VISION_MODEL]"
                      +" WHERE REPLACE(VISION_NO,' ', '') = '" + str(k_vision_no) + "'"
                      +"   AND REPLACE(MODEL_METHOD,' ', '') = 'CLASSIFICATION'")

 

쿼리 내용은 따라 하지 않으셔도 됩니다~ 

 

※ 본인이 조회 할려는 Query를 사용하세요

 

row = cursor.fetchone()

 

그리고 한개씩의 값을 row라는 변수에 담아 줍니다

 

while row:
            list_roi.append(row)
            row = cursor.fetchone()
        conn.close()

 

이렇게 해서 실행하시게 되면 해당 쿼리의 결과값을 받으실수 있는데요

 

제가 만든 전체 함수를 올려드리 활용하여 알맞게 수정하여 사용하시기 바랍니다

 

def Read_CSV_ALL_Section(self, _cam_info = 1, _path = None):
        list_roi = []
        k_vision_no = _cam_info

        conn = pymssql.connect(server='localhost', database='SAC_VISION')
        cursor = conn.cursor()
        cursor.execute("SELECT CONVERT(INT, MODEL_NO), CONVERT(INT, VARIABLE_1), VARIABLE_2, "
                      +"       CONVERT(INT, AREA_X)+CONVERT(INT, POINT_X), CONVERT(INT, AREA_Y)+CONVERT(INT, POINT_Y), "
                      +"       CONVERT(INT, AREA_X)+CONVERT(INT, AREA_WIDTH)+CONVERT(INT, POINT_X),"
                      +"       CONVERT(INT, AREA_Y)+CONVERT(INT, AREA_HEIGHT)+CONVERT(INT, POINT_Y)"
                      +"  FROM [VISION_MODEL]"
                      +" WHERE REPLACE(VISION_NO,' ', '') = '" + str(k_vision_no) + "'"
                      +"   AND REPLACE(MODEL_METHOD,' ', '') = 'CLASSIFICATION'")

        row = cursor.fetchone()
        
        while row:
            list_roi.append(row)
            row = cursor.fetchone()
        conn.close()
        
        return list_roi

 

저는 저에게 맞는 방법으로 구현하것이라 소스코드를 그래도 사용하시면 오류가 나실겁니다~

 

꼭 수정하셔서 사용하세요~

반응형

댓글