안녕하세요
코딩연습생입니다~ㅎ
이번 포스팅은 제목에서 언급한것 처럼 Python에서 pymssql을 사용한 mssql DB 데이터를 Select하는 방법을
포스팅해 보도록 하겠습니다
첫번째는 파이썬을 설치 해야 합니다
https://www.python.org/downloads/
해당 싸이트에 접속한 뒤에 아래 버튼을 통해 다운로드 받습니다
구버전을 다운로드 하시고자 한다면 화면을 좀 더 아래로 내리면 버전별 다운로드가 가능합니다
여기서 버전을 선택하여 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
저는 저에게 맞는 방법으로 구현하것이라 소스코드를 그래도 사용하시면 오류가 나실겁니다~
꼭 수정하셔서 사용하세요~
'코딩정보 > Python' 카테고리의 다른 글
[Python] 티스토리 API를 사용하여 작성글 쓰기(2) (0) | 2021.01.14 |
---|---|
[Python] 티스토리 API를 사용하여 작성글 쓰기(1) (10) | 2021.01.12 |
[Python] 티스토리 API 사용을 위한 Access_token 구하기 (5) | 2021.01.11 |
[Python] 웹크롤링을 통한 종가 정보 가져오기 (0) | 2020.12.03 |
[Anaconda3] Python 버전 바꾸기 (2) | 2020.02.04 |