20180228更新:
前几天SQL Server Management Studio突然打不开了,提示缺少组件,需要重新安装,我修复和重新安装依然打不开,搜索Google发现是Visual Studio 2015 Shell的问题,修复Visual Studio 2015后果然SQL Server Management Studio,可是根据之前的方法Python却怎么也无法连接SQL Server了,于是最终我放弃使用SQL Server,改用MySQL。下面更新为Windows下Python3连接MySQL的方法:
(1)MySQL非安装版在Windows下的配置:
我下载的是MySQL Windows非安装版:mysql-5.7.21-winx64.zip
将文件解压到合适的路径,我的路径是:C:\Program Files\MySQL,然后将MySQL的bin目录添加到系统环境变量Path里:C:\Program Files\MySQL\mysql-5.7.21-winx64\bin。
其余可参考一下博客:http://blog.csdn.net/fuemocheng/article/details/79184511
MySQL的可视化管理工具推荐使用:Navicat
(2)Windows下Python3连接MySQL:
安装python下MySQL连接工具pymysql
pip install pymysql
#!/usr/bin/python3
import pymysql
# Open database connection
db = pymysql.connect("localhost","你的用户名","你的数据库密码","你的数据库名称" )
# prepare a cursor object using cursor() method
cursor = db.cursor()
# execute SQL query using execute() method.
cursor.execute("SELECT VERSION()")
# Fetch a single row using fetchone() method.
data = cursor.fetchone()
print ("Database version : %s " % data)
# disconnect from server
db.close()
读取SQL表到DataFrame
#!/usr/bin/python3
import pymysql
import pandas as pd
# Open database connection
db = pymysql.connect("localhost","你的用户名","你的数据库密码","你的数据库名称" )
SQL = "SELECT * FROM YOUR DATABASE"
df = pd.read_sql(SQL, con=db)
(3)Windows下Python3连接Oracle数据库:
需要安装cx_Oracle模块,并且使用时保证oracle instantclient版本相同,例如Python是64位的,instantclient也要是64位的
# import module
import cx_Oracle as oracle
print(oracle.clientversion()) # (11, 2, 0, 1, 0)
conn = oracle.connect('用户名/密码@IP/你的数据库名称') #用自己的实际数据库用户名、密码、主机ip地址 替换即可
SQL = "SELECT * FROM YOUR DATABASE"
df = pd.read_sql(SQL, con=db)
——————————更新分割线,以下是SQL Server 方法——————————
网络上使用python连接微软SQL Server基本上提到的两个python库就是:pyodbc和pymssql了
Windows系统下的配置安装参考:
https://docs.microsoft.com/en-us/sql/connect/python/python-driver-for-sql-server
一、pymssql
在Windows系统下,相比于pyodbc的配置,pymssql要少一个步骤
直接通过pip install pymssql可以配置好pymssql进行使用
但我通过这个办法装好了pymssql包,但是用python连接SQLServer数据库时长时间没有反应,问题未知,于是改用pyodbc
二、pyodbc
配置pyodbc比pymssql多的一个步骤就是需要先安装pyodbc的驱动程序,然后再通过pip install pyodbc安装pyodbc使用