Python에서 MS-SQL을 사용하려면 일단, MS-SQL DB를 지원하는 Python 모듈을 설치해야 한다. MS-SQL에 대한 모듈은 크게 pyodbc와 pymssql 두가지가 있는데 여기서는 pymssql을 사용 할 것이다.
(DB에 관련된 모듈은 무수히 많은 것들이 있다. 참고: https://www.lfd.uci.edu/~gohlke/pythonlibs/)
다음과 같이 pymssql을 설치한다.
(설치 방법은 Ubuntu Linux대상 이다. 다른 OS를 사용하는 경우는 여기를 참고하면 된다.)
$ apt-get --assume-yes update $ apt-get --assume-yes install freetds-dev freetds-bin $ pip install pymssql
이제 Python에서 설치한 모듈을 가지고 MS-SQL에 접근해 보자.
import json import pymssql #[Tip]json 문자열을 환경변수 파일로 저장하여 사용한다면 서버정보를 노출 하지 않을 수 있다. json_string = '{ "host":"Server Address", "port":1433, "user":"User ID@Server Name", "password":"P@ssW0rd", "database":"Database Name" }' json_data = json.load(json_string) #pymssql 모듈을 이용하여 Connection 생성을 한다. conn = pymssql.connect(host=json_data['host'], port=json_data['port'], user=json_data['user'], password=json_data['password'], database=json_data['database'])
여기까지 하면 MS-SQL서버에 접근(Connection 완료) 한 것이다.
다음으로 Select query문을 실행하여 데이터를 가져와 보자.
#Connection으로부터 cursor 생성 cursor = conn.cursor() #Select Query 실행 cursor.execute('select * from [Target Table Name]') #결과 데이터를 데이터프레임에 저장 df = pd.DataFrame(cursor.fetchall()) #실행이 끝나면 항상 연결 객체를 닫아 주어야 한다. conn.close()
잘 실행 되었다면 결과를 담은 데이터프레임을 출력 해보자.
#결과 출력 print(df)
실행한 Select Query한 결과를 확인 할 수 있을 것이다.