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한 결과를 확인 할 수 있을 것이다.