#title Python - DB에서 데이터 읽기 [[TableOfContents]] ==== 환경 ==== * localhost에 microsoft sql server가 설치되어 있음(필자의 PC에는 2016 Developer Edition이 설치됨) * [attachment:DB에서데이터읽기/pubs.sql pubs] 데이터베이스가 있다고 가정 ==== anaconda에서 pyodbc install ==== {{{ conda install -c anaconda pyodbc=3.0.10 }}} ==== pyodbc: 귀찮은 버전 ==== Windows OS의 ODBC세팅을 하지 않아도 된다. 그냥 관련이 없이 동작한다고 생각하면 되겠다. Windows OS의 ODBC세팅을 했다면 conn = pyodbc.connect(r'DSN=mynewdsn;UID=user;PWD=password')와 같이 하면 된다. DSN은 Data Source Names의 약자 {{{ import pyodbc conn = pyodbc.connect(driver='{SQL Server}', host='localhost,1433', database='pubs', user='id', password='pass') cursor = conn.cursor() cursor.execute(""" select type , count(*) cnt from dbo.titles group by type order by 2 desc """) rows = cursor.fetchall() for row in rows: print (row.type, row.cnt) }}} ==== pandas 이용 ==== {{{ import pandas.io.sql as sql import pyodbc conn = pyodbc.connect(driver='{SQL Server}', host='localhost,1433', database='pubs', user='id', password='pass') rows = sql.read_sql(""" select type , count(*) cnt from dbo.titles group by type order by 2 desc """ , conn) print (rows) }}} ---- CategoryMachineLearning