python的pandas库读取SQL sever有两种方法。一种使用pymssql,另一种使用sqlalchemy。这里只是将数据库中的表读取为DataFrame,不进行修改等表操作。
目录
一、pymssql
1.安装
可以直接用以下命令安装pymssql。
pip install pymssql
pip install sqlalchemy
2.连接数据库
这里也分为两种情况,一种是直接使用windows验证登陆,另一种是进行SQL Sever身份验证即账号密码登陆。这里可以进行设置,可以同时使用两种登录方式。
1.登录设置
如果要设置两种方式同时登陆,我们首先用windows验证登录以后
点击安全性,选择如图所示的选项以后点击确定,关闭该窗口。
然后点击安全性,在登录名中右键点击sa,再点击菜单栏的最下方的属性。
首先点击常规,设置密码,然后再点击状态,启用登陆。点击确定关闭。
最后我们需要重启SQL Sever。在开始菜单栏找到SQL Sever配置管理器。找到SQL Sever网络配置。在MSSQL Sever协议中启用“Named Pipes”和“TCP/IP”。然后在SQL Sever服务中,右键点击SQL Sever(MSSQL Sever),然后点击重新启动。这样就设置完成了。
3.获取数据库表
import pymssql
import pandas as pd
"""
如果使用sql sever身份验证的话用下面的代码
conn = pymssql.connect(host, user, password, "连接默认数据库名称")
"""
#这里直接用windows验证登陆,无需账号密码,database为需要连接的数据库名称
conn = pymssql.connect(host="",database="db_databsae", charset="utf8")
#使用pandas库的read_sql方法,输入select语句即可
df = pd.read_sql("select * from score",con=conn)
print(df)
conn.close()
这里的host参数是服务器名称,我们一般连接到本地服务器为localhost,就是ip地址加端口号。可以按照如下方式找到。右键ip协议然后点击属性,这里host即为 ip地址:端口号 。比如 127.0.0.1:1533 。127.0.0.1为ip,1533为端口号。这样我们就可以成功获取到数据了。
二、sqlalchemy
有了上一部分的设置,这里直接上代码,都是类似的。
import sqlalchemy as sqla
#windows验证登陆
#这里只需把host换成自己的host和databsae换成自己的数据库名称
db = sqla.create_engine("mssql+pymssql://@host/databsae?charset=utf8")
pd.read_sql("select * from score;",db)
#sql sever身份验证登陆
#同样换掉host和数据库名称,同时换掉sa登陆的密码,这里为123
db = sqla.create_engine("mssql+pymssql://sa:123@host/db_databsae?charset=utf8")
pd.read_sql("select * from test;",db)